IP报文格式
IP协议:
基本概念:
主机:配有IP地址,但不进行路由控制的设备
路由器:配有IP地址,又能进行路由控制的设备
节点:主机和路由器的统称
IP协议的功能
寻址和路由(根据对方的IP地址,寻找出最佳的路径传输信息)
传递服务
不可靠 (IP协议只是尽最大努力去交付,可靠由上层TCP协议提供)
无连接 (事先不建立会话)
数据包的分片和重组
IP协议头格式:
4位版本号:指定IP协议的版本,对于IPV4来讲,就是4
4位首部长度:IP首部长度是多少各32bit,也就是length*4 的字节数,IP头部最大长度是60字节
8位服务类型:
3位优先权字段(已经弃用)
4位TOS字段:最小延时,最大吞吐量,最高可靠性,最小成本(这四者冲突,只能选择一个)
1位保留字段,必须为0
16位总长度:IP数据报整体占多少个字节
16位标识:是一个标识,唯一标识主机发送的报文,如果IP报文在数据链路层被分片了(IP报文长度大于MTU),则每一片里的这个标识(id)都是一样的
3位标志:
第一位:保留
第二位:是否允许分片(置0:允许,置1:不允许),如果置1,但是IP报文长度超过MTU则被丢弃
第三位:结束标志(最后一片置1,表示已经完了,其余的置0)
13位片偏移:分片相对于原始IP报文的偏移(其实就是表示当前分片在原报文中处在哪个位置)
注:发送的报文过大,就需要对其进行分片处理,每一个分片都会包含一个标识(IP地址+标识)到达目的地被重组
8位生存时间(TTL):数据报到达目的地的最大报文跳数,一般是64,每次经过一个路由,TTL-=1;一直减到0,还没到达就丢弃。主要用来防止出现路由循环
8位协议:上层协议类型
16位首部校验和:使用CRC来进行校验,鉴别头部是否损坏
32位源IP地址,32位目的IP地址:表示发送端和接受端
选项:不定长,最多40个字节
TCP报文格式
源端口(Source port)和目的端口(Destination port)
各16 bits。IP地址标识互联网中的不同终端,端口号标识终端中的不同应用进程,具有本地意义。32位IP + 16位端口号 = 48位插口。
端口由互联网数字分配机构(Internet Assigned Numbers Authority,IANA)分配,TCP和UDP端口号列表。
著名端口号(Well-known) 注册端口号(Registered) 动态端口号(Dynamic)
0~1023 1024~49151 49152~65535
IANA统一分配 向IANA申请注册 本地分配
– 序号(Sequence Number)和确认序号(Acknowledgment Number)
各32 bits。TCP连接传输的字节流中的每一个字节都有序号。SN指示本报文段所发送的数据第一个字节的序号。AN指示期望收到对方的下一个报文的第一个字节的序号,所有小于AN的报文都被正确接收。
首部长度(Data offset)
4 bits,以32-bit字为单位。TCP首部长短,也是TCP报文数据部分的偏移量。范围5~15,即20 bytes ~ 60 bytes。options部分最多允许40 bytes。
保留(Resevered)
3 bits,将来使用,目前应设为0。
标志位(Flags)
URG = 1,指示报文中有紧急数据,应尽快传送(相当于高优先级的数据)。
PSH = 1,接到后尽快交付给接收的应用进程。
RST = 1,TCP连接中出现严重差错(如主机崩溃),必须释放连接,在重新建立连接。
FIN = 1,发送端已完成数据传输,请求释放连接。
SYN = 1,处于TCP连接建立过程。
ACK = 1,确认序号(AN)有效。
窗口(Window size)
16 bits,接收窗口的大小。接收端希望接收的字节数。
校验和(Checksum)
16 bits,校验报文首部、数据。
紧急指针(Urgent pointer)
16 bits,如果URG = 1,该字段指示紧急数据的大小(相对于SN的偏移),紧急数据在数据部分的最前面。
可选项(Options)
TCP报文的字段实现了TCP的功能,标识进程、对字节流拆分组装、差错控制、流量控制、建立和释放连接等。
UDP报文格式
源端口(Source port)和目的端口(Destination port)
报文长度(Length)
16 bits,指示UDP报文(首部和数据)的总长度。最小8 bytes,只有首部,没有数据。最大值为65535 bytes。实际上,由于IPv4分组的最大数据长度为(65535 – 20 = 65515) bytes,UDP的报文长度不超过65515 bytes。IPv6允许UDP的长度超过65535,此时length字段设为0。
校验和(Checksum)
参考:
http://www.xuetangx.com/courses/course-v1:UST+UST001+sp/courseware/a4bb2456afc54cdc94defd1ab13b0389/ https://en.wikipedia.org/wiki/Transmission_Control_Protocol https://en.wikipedia.org/wiki/User_Datagram_Protocol
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net