在TCP/IP协议族中,链路层主要有三个目的: 1.为IP模块发送和接收IP数据报 2.为ARP模块发送ARP请求和接收ARP应答 3.为RARP请求和接收RARP应答 TCP/IP支持多种不同的链路层协议,本文主要讨论以太网链路层协议.PPP协议以及大多数实现都包含的环回(loopback)驱动程序. 使用ifconfig命令查看本机的网络接口 其中eth0就是以太网接口,lo是环回接口. 1.以太网IP数据包的封装 链路层使用了48bit的MAC地址来标识一台主机,该地址是唯一的. 2.PP…
很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议族允许它们相互进行通信. 1.分层 TCP/IP不是一个协议,而是一个协议族,通常它被认为是一个四层的协议系统,下面展示了TCP/IP协议族中不同层次的协议 2.互联网的地址 互联网上每个接口必须有一个唯一的Internet地址(IP地址).IP地址(IPv4)长32bit,下面是5类不同的互联网地址格式 下面是各类IP地址的范围 3.端口号 TCP和UDP采用16bit的端口号来识别应用程序 4.RFC RFC(…
前言:TCP学习的综述 在学习TCP/IP协议的大头:TCP协议 的过程中,遇到了很多机制和知识点,详解中更是用了足足8章的内容介绍它. TCP协议作为 应用层 和 网络层 中间的 传输层协议,既要为下面的网络层协议保证连接的可靠性(IP协议)弥补不足,又要作为 应用层进程向网络层发送数据的中转站(作为多路复用/解复用器). 这就使得我们在审视TCP这个协议的过程中,需要横向和纵向地看待TCP连接: 横向的连接:client 的 TCP 与 server 的 TCP.三握四挥,是 reliabl…
1.在每个TCP报文段中,头部的flag字段里的SYN,FIN,RST,PSH可以多个有效,并没有限定为必须只有一个 2.TCP连接建立过程: 1)客户端发送一个SYN报文段,其中包含了客户端要传送的初始字节序列J 2)服务器端收到上述报文段,并且返回一个报文段,其中包含了服务器端的SYN序号K,以及对客户端SYN序号的响应信号ACK,J+1,其实ACK确认序列号指的是服务器端希望从客户端得到的下一个字节流的序号,由于SYN消耗了一个序号,因此返回的ACK确认序号为J+1 3)同样,接收到从服务…
前言 在有关TCP的章节中,介绍了四种定时器,它们体现了TCP的可靠性,其中最重要的 就是重传定时器了,剩下的定时器都是为了解决TCP的理解上的一些问题而设置的. 四种定时器: 2MSL定时器,出现在 TCP连接的建立与终止. 重传定时器,出现在 TCP的超时与重传. 坚持定时器. 保活定时器. 相关随笔: TCP连接的建立与终止 TCP的超时与重传 TCP的坚持定时器 TCP的保活定时器 2MSL定时器 出现:TCP连接的建立与终止 教材P183 四次挥手客户端一共有三次状态:应用程序关闭,发…
1.Delayed Acknowledgements:TCP通常不会在收到数据之后立即返回一个ACK,而是会有一个延时,希望能ACK报文段中带上一些数据,通常这个延时为200ms 2.Nagle Algorithm:在TCP连接中,只能有一个小的报文段未被确认.即TCP在发送了一个小的报文段之后,会将之后的小数据都收集起来,直到之前的小报文段得到确认,才将收集到的小数据打包成一个报文段发出.这样做的减少了网络中小报文段的数量,减轻了网络的阻塞,提高了传输的效率 3.当一个包到达以后,它首先被设备…
本章将介绍TCP所使用的被称为滑动窗口协议的一种流量控制方法. 该协议允许发送方在停止并等待确认前可以连续发送多个分组,这样就可以加速数据的传输. 滑动窗口 下图用可视化的方法显示了滑动窗口协议 我们使用三个术语来描述窗口左右边缘的运动: 1.称窗口左边沿右边缘靠近为窗口合拢.这种现象发生在数据被发送和确认时. 2.当窗口右边沿右移动将允许发送更多的数据,我们称之为窗口张开. 3.当右边沿向左移动时,我们称之为窗口收缩.…
1.persist timer:当接收方建议的窗口大小为0时,发送方就会停止发送,直到接收方有缓存空间时再用一个窗口值非零的ACK提示发送方可以继续发送.但是这个称为window update的ACK报文段很可能会发生丢失,这个时候就不可避免地发送了死锁.因此,发送方需要设置一个persist timer,每隔一段时间就向接收方发送一个询问报文window probes,当接收方可以接收数据时就重新开始发送 2.通常发送方都会包含一个字节数据的报文段作为window probes,该字节的数据其…
1.TCP提供的是可靠传输,它通过接收方发送一个确认报文ACK来提供这种可靠性.但是数据报文和确认报文都可能会丢失,所以TCP会给发出的数据报文设置一个时间,如果超时了则进行重传 2.Karn's Algorithm:当发生了一次超时重传之后,我们不能根据发回的对于重传数据的ACK更新RTT和RTO(retransmission timeout 重传时间)的值.因为我们不知道这个ACK是对于第一次传送的数据的确认(可能是第一次发送的数据在网络中有延时或者是它对应的ACK报文有延时)还是对重传数据…
2.1 引言 链路层的三个目的: (1)为IP模块发送和接收IP数据报. (2)为ARP模块发送ARP请求和接收ARP应答.地址解析协议:ARP. (3)为RARP模块发送RARP请求和接收RARP应答.逆地址解析协议:RARP. 本章介绍了以太网协议,SLIP协议,PPP协议(现在常用),以及loopback等协议. 2.2.1 以太网和IEEE802封装 以太网 以太网是指数字设备公司和英特尔公司和Xerox公司在1982年联合发布的一个标准.采用CSMA/CD的媒体接入方法. IEEE(电…