HDLC叫高级链路控制协议(High Level Data Link Control)。该协议一般广泛用于公用数据网,支持全半双工模式,一种同步传输数据,面向比特的数据链路层协议。
HDLC数据帧结构
Falg字段 |
Address字段 |
Control字段 |
信息info字段 |
FCS字段 |
Falg字段 |
1、 Flag字段:HDLC用一种特殊的位模式01111110用以标志帧的开始与结束,也可以作为帧与帧之间的填充字符,发送的数据比特序列一旦发现0有连着的5个1,则在第七位插入0。
2、 Address字段:用于表示从站的地址,用在点对多点的链路中,通常地址是8位长,也可以采用更长的地址段,需是8的整数倍。用于描述数据帧是否属于单播、组播、广播帧。
3、 Control字段:用于构成各种命令及响应,以便对链路进行监视与控制。发送方利用控制字段来通知接收方来执行约定的操作;相反,接收方用该字段作为对命令的响应,报告已经完成的操作或状态的变化。
3.1 信息帧用于传送有效信息或数据,简称为I帧
3.2 监控帧用于差错控制和流量控制,简称S帧(监控帧中不能有Information字段)
3.3 无编号帧用于提供对链路的建立、拆除以及多种控制功能,简称U帧。
网际协议版本4(Internet Protocol version 4,IPv4)是一种无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。这些方面是由上层的传输协议(如传输控制协议)处理的。
IPV4数据报格式
版本号:占 4 比特,指 IP 协议的版本,目前广泛使用 IPv4。
首部长度(IHL):IP 头长度,占 4 比特,最大值 15 个单位(1 个单位 4 字节)。
服务类型(TOS):该字段包括一个 3 比特的优先级子字段(现在已废弃不用),还包括一个 4 比特的 ToS子字段,最后 1 比特必须置 0。ToS 中的 4 比特分别代表:最小时延(D)、最大吞吐率(T)、最高可靠性(R)和最小费用(C),只能有 1 比特置 1。如果所有 4 比特均为 0,那就是一般服务。
总长度:总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。
标识符:由主机指定同样的标识符。当原主机对数据分段时,对同一上层协议数据单元划分出的各。
个数据报指定同样的标识符,目标主机上层协议用这个字段进行重装配。
标志:包括三个标志位。一个标志位没有使用;M 标志用于分段和重装配;D 标志为禁止分段标志。
片偏移:其表示较长分组分片后,某一片在原分组中的相对位置,也就是说相对于用户数据字段的起点,该片从何处开始。这也就是说,除了最后一个分片,每个分片的长度一定是8字节的整数倍
生存时间(TTL):用经过的路由器个数表示,源站设置一个数(32 或 64),每经过一个路由器减 1。如果某个路由器发现 TTL 字段为 0,则丢弃该数据报,不再转发。
协议:上层协议(TCP 或 UDP)。
首部验和:对 IP 头的检验序列。
源目地址:各占32位。
数据部分:可变长,包含发送者想要发送的控制数据。
ICMP(Internet Control Message Protocol)因特网控制报文协议;是一种面向无连接的协议,工作第三层,封装在 IP 数据报中传输,传送有关网络层通信问题的信息。ICMP 常见应用有:1. 报告访问失效(报告源主机网络不可达);2. 报告网络拥塞(发送源抑制报文给源主机,降低发送速率);3. 帮助排错(利用 ICMP 回声功能,ping 工具);4. 声明报文超时(TraceRoute 工具,利用较小的 TTL 值发现中间设备)。
类型:占8位,用来表类型;
代码:一个8位代码域,表示指定类型中的一个功能,如果一个类型中只有一种功能,代码域置为 0;
检验和:数据包中 ICMP 部分上的一个16位检验和;
ICMP数据部分:包含了所有接受到的数据报的IP报头,还包含IP数据报中前8个字节的数据。
传输控制协议(TCP,Transmission Control Protocol)是面向连接,可靠(三次握手机制),基于字节流的传输层协议,。
TCP 报文格式
TCP报文由首部和数据两部分组成。首部一般由20-60字节(Byte)构成,长度可变。其中前20B格式固定,后40B为可选。因为,TCP报文还得传给下层网络层,封装成IP包,而一个IP包最大长度为65535,同时IP包首部也包含最少20B,所以一个IP包或TCP包可以包含的数据部分最大长度为65535-20-20=65495B。
TCP报文中数据部分是可选的,即TCP报文可以不包含数据(同理IP包也可以不包含数据)。不含数据的TCP报文通常是一些确认和控制信息类的报文,如TCP建立连接时的三次握手和TCP终止时的四次挥手等。
1、源目的端口号:长度为16位,发送和接收放的端口号
3、序号:也称为序列号,长度为32位,序号用来标识从TCP发送端向接入端发送的数据字节流进行编号,可以理解成对字节流的计数。
4、确认号:长度为32位,确认号包含发送确认的一端所期望收到的下一个序号。确认号只有在ACK标志为1时才有效。
5、数据偏移位(首部长度):占4位,用于表示TCP报文首部的长度。它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。
6、保留位:长度为6位,必须是0,它是为将来定义新用途保留的。
7、标志:长度为6位,在TCP报文中不管是握手还是挥手还是传数据等,这6位标志都很重要。6位从左到右依次为:
URG:紧急标志位,说明紧急指针有效;
ACK:确认标志位,多数情况下空,说明确认序号有效;
PSH:推标志位,置位时表示接收方应立即请求将报文交给应用层;·
RST:复位标志,用于重建一个已经混乱的连接;
SYN:同步标志,该标志仅在三次握手建立TCP连接时有效
FIN:结束标志,带该标志位的数据包用于结束一个TCP会话。
8、窗口大小:长度为16位,TCP流量控制由连接的每一端通过声明的窗口大小来提供。
9、检验和:长度为16位,该字段覆盖整个TCP报文端,是个强制性的字段,是由发送端计算和存储,到接收端后,由接收端进行验证。
10、紧急指针:长度为16位,指向数据中优先部分的最后一个字节,通知接收方紧急数据的长度,该字段在URG标志置位时有效。
11、选项:长度为0-40B(字节),必须以4B为单位变化,必要时可以填充0。通常包含:最长报文大小(MaximumSegment Size,MSS)、窗口扩大选项、时间戳选项、选择性确认(Selective ACKnowlegement,SACK)等。