[关闭]
@lwxyfer 2015-12-19T14:57:30.000000Z 字数 10076 阅读 1827

计算机网络基础

博客地址:http://blog.lwxyfer.com/547.html


此处输入图片的描述

OSI

简介OSI

From WIKIhttps://en.wikipedia.org/wiki/OSI_model
The model partitions a communication system into abstraction layers.
open system internetconnection 是由国际标准化组织ISO制定。就是ISO制定了OSI
OSI模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。
OSI/RM(Open System Interconnection Reference Model)即开放系统互连基本参考模型。

分层

每层所含协议

每层详细解析

http://baike.baidu.com/link?url=Afvh0Cqmffe9rRAQP0CPjS1w7KCLbb-uEBH1dF_VVbxq7tZO_3hzEDOd9RKTTG-kvYajpPvtpHo0dicv3ln93K

对等层实体间通信时信息的流动过程

对等层实体之间虚拟通信;下层向上层提供服务;实际通信在最底层完成;发送方数据由最高层逐渐向下层传递,到接收方数据由最低层逐渐向高层传递。

OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。
而传输层及以下各层的PDU另外还有各自特定的名称:
传输层——数据段(Segment)
网络层——分组(数据包)(Packet)
数据链路层——数据帧(Frame)
物理层——比特(Bit)

此处输入图片的描述

七层通信

此处输入图片的描述

TCP/IP vs OSI

TCP/IP模型实际上是OSI模型的一个浓缩版本,它只有四个层次:
1.应用层,对应着OSI的应用层、表示层、会话层
2.传输层,对应着OSI的传输层
3.互联层,对应着OSI的网络层
4.网络接口层,对应着OSI的数据链路层和物理层

TCP/IP是OSI简化版,但是TCP/IP 才是成功的。通常我们所讨论的还是从TCP/IP来解决问题的,也就是它是我们在互联网操作中最主要的协议。

TCP/IP

FROM WIKI:https://en.wikipedia.org/wiki/Internet_protocol_suite

各个协议Header:https://nmap.org/book/tcpip-ref.html

此处输入图片的描述

简介

The Internet protocol suite is the computer networking model and set of communications protocols used on the Internet and similar computer networks. It is commonly known as TCP/IP, because its most important protocols, the Transmission Control Protocol (TCP) and the Internet Protocol (IP) were the first networking protocols defined in this standard.

TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。

模块协议

此处输入图片的描述

通过图片可以看到对应的包含的协议。 并且了解每个协议的原理与作用。

分层解析


IP -- Internet Protocol

http://baike.baidu.com/subview/8370/15816170.htm
https://en.wikipedia.org/wiki/Internet_Protocol
在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。
IP has the task of delivering packets from the source host to the destination host solely based on the IP addresses in the packet headers. For this purpose, IP defines packet structures that encapsulate the data to be delivered. It also defines addressing methods that are used to label the datagram with source and destination information.
功能:
- Datagram construction
- IP addressing and routing

IPV6

IPv6是Internet Protocol Version 6的缩写,其中InternetProtocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。
与IPV4相比,IPV6具有以下几个优势:

  1. IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
  2. IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
  3. IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
  4. IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
  5. IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。

IP内容

互联:

IP协议实际上是一套由软件、程序组成的协议软件,它把各种不同“帧”统一转换成“网协数据包”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。

数据包:

那么,“数据包(data packet)”是什么?它又有什么特点呢?数据包也是分组交换的一种形式,就是把所传送的数据分段打成 “包”,再传送出去。但是,与传统的“连接型”分组交换不同,它属于“无连接型”,是把打成的每个“包”(分组)都作为一个“独立的报文”传送出去,所以叫做“数据包”。这样,在开始通信之前就不需要先连接好一条电路,各个数据包不一定都通过同一条路径传输,所以叫做“无连接型”。这一特点非常重要,它大大提高了网络的坚固性和安全性。
数据包格式如下:
此处输入图片的描述
此处输入图片的描述
每个数据包都有报头和报文这两个部分,报头中有目的地址等必要内容,使每个数据包不经过同样的路径都能准确地到达目的地。在目的地重新组合还原成原来发送的数据。这就要IP具有分组打包和集合组装的功能。
在传送过程中,数据包的长度为30000字节(Byte)(1字节=8二进制位)。
另外,特别注意的是,ip数据包指一个完整的ip信息,即ip数据包格式中各项的取值范围或规定,如版本号可以是4或者6,ip包头长度可以是20字节-60字节,总长度不超过65535字节,封装的上层协议可以是tcp和udp等。

细则

  1. IP协议: 这种不可靠的、无连接的传送机制称为Internet协议。
  2. IP协议三个定义:
      (1)IP定义了在TCP/IP互联网上数据传送的基本单元和数据格式。
      (2)IP软件完成路由选择功能,选择数据传送的路径。
      (3)IP包含了一组不可靠分组传送的规则,指明了分组处理、差错信息发生以及分组的规则。
  3. IP数据包:联网的基本传送单元是IP数据包,包括数据包头和数据区部分。
  4. IP数据包封装:物理网络将包括数据包包头的整个数据包作为数据封装在一个帧中。
  5. MTU网络最大传送单元:不同类型的物理网对一个物理帧可传送的数据量规定不同的上界。
  6. IP数据包的重组:一是在通过一个网络重组;二是到达目的主机后重组。后者较好,它允许对每个数据包段独立地进行路由选择,且不要求路由器对分段存储或重组。
  7. 生存时间:IP数据包格式中设有一个生存时间字段,用来设置该数据包在联网中允许存在的时间,以秒为单位。如果其值为0,就把它从互联网上删除,并向源站点发回一个出错消息。
  8. IP数据包选项:
      IP数据包选项字段主要是用于网络测试或调试。包括:记录路由选项、源路由选项、时间戳选项等。
      路由和时间戳选项提供了一种监视或控制互联网路由器路由数据包的方法。

IP地址

如今的IP网络使用32位地址,以点分十进制表示,如192.168.0.1。
地址格式为:IP地址=网络地址+主机地址 或 IP地址=网络地址+子网地址+主机地址。

公用地址

基本格式

私有地址

代理IP 就是代理服务器 Proxy Sever

TCP - Transmission Control Protocol

WIKI有对TCP有完整的归纳:

参考链接:
http://www.networksorcery.com/enp/protocol/tcp.htm -- TCP Reference
http://baike.baidu.com/view/1003841.htm
http://www.networksorcery.com/enp/protocol/tcp.htm#Glossary
http://coolshell.cn/articles/11564.html
https://tools.ietf.org/html/rfc793

TCP的内容比较杂乱多,而且复杂。包括 TCP头格式,状态,传输,最主要的连接三次握手!!!

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

一次完整的数据传输:

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

TCP provides reliable, ordered, and error-checked delivery of a stream of octets between applications running on hosts communicating over an IP network. TCP is the protocol that major Internet applications such as the World Wide Web, email, remote administration and file transfer rely on. Applications that do not require reliable data stream service may use the User Datagram Protocol (UDP), which provides a connectionless datagram service that emphasizes reduced latency over reliability.

数据

数据格式

数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC初步地址及类型,帧尾是校验字)
IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)
TCP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)

TCP头

此处输入图片的描述

名词英文解析:http://www.networksorcery.com/enp/protocol/tcp.htm#Glossary

连接建立(三次握手)

详情:http://baike.baidu.com/view/1003841.htm

此处输入图片的描述

  1. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
    第二次

  2. 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    第三次

  3. 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

连接终止(四次握手)

此处输入图片的描述

详细内容

此处输入图片的描述

TCP状态机 - State

Statu diagram 状态图
此处输入图片的描述

TCP重传机制

TCP要保证所有的数据包都可以到达,所以,必需要有重传机制。

TCP RTT算法

为了动态地设置重传时的timeout,TCP引入了RTT——Round TripTime,也就是一个数据包从发出去到回来的时间。
这样发送端就大约知道需要多少的时间,从而可以方便地设置Timeout——RTO(Retransmission TimeOut),
以让我们的重传机制更高效。

TCP滑动窗口 - Sliding-Window

WIKI : https://en.wikipedia.org/wiki/Sliding_window_protocol

A sliding window protocol is a feature of packet-based data transmission protocols. Sliding window protocols are used where reliable in-order delivery of packets is required, such as in the Data Link Layer (OSI model) as well as in the Transmission Control Protocol (TCP).

TCP必需要解决的可靠传输以及包乱序(reordering)的问题,所以,TCP必需要知道网络实际的数据处理带宽或是数据处理速度,这样才不会引起网络拥塞,导致丢包。
所以,TCP引入了一些技术和设计来做网络流控,Sliding Window是其中一个技术。 前面我们说过,TCP头里有一个字段叫Window,又叫Advertised-Window,这个字段是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。

TCP的拥塞处理 – Congestion Handling

慢热启动算法 – Slow Start
拥塞避免算法 – Congestion Avoidance
拥塞状态时的算法
快速恢复算法 – Fast Recovery
FACK算法

TCP Vegas 拥塞控制算法
HSTCP(High Speed TCP) 算法
TCP BIC 算法
TCP WestWood算法
《Congestion Avoidance and Control》(PDF)
http://ee.lbl.gov/papers/congavoid.pdf

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注