几个概念
1.分层(我们使用四层模型更为贴合我们的实际网络)
分层是为什么,其实和公司中职位是一样的,不同职位的人做不同的事情,然后不同职位的人合起来,一起完成了数据传输的事情。
链路层 在这个层面,主机与主机的交互只认得硬件mac编号,并不认识IP。
网络层 IP ICMP IGMP
运输层 TCP UDP
应用层 Telnet远程登陆,FTP文件传输协议(我们这个端口和那个端口的连接是用来干什么的,传输文件?那么可以使用FTP。传输文本?那么可以使用HTTP。应用层就是实际上对具体的程序之间的交互功能进行定义的层。)
2. 接口 互联网上的每个接口必须有一个唯一的 I P地址
使用T C P / I P协议的应用程序通常采用两种应用编程接口( A P I):
s o c k e t和T L I(运输层接口:Transport Layer Interface)。
3. 封装 T C P传给I P的数据单元称作 T C P报文段或简称为 T C P段(T C P s e g m e n t)。
I P传给网络接口层的数据单元称作 I P数据报(IP datagram)。通过以太网传输的比特流称作帧(Fr a m e )。
IP:网络协议
一.基本概念
所有的 T C P、U D P、I C M P及I G M P数据都以I P数据报格式传输。IP的就像给网络上每个机器一个门牌号,网络层,你可以把它理解为邮件运输工,它的职能就是负责把一包东西,从这个门牌运输到另外一个门牌。
不可靠(u n r e l i a b l e)的意思是它不能保证 I P数据报能成功地到达目的地。如果发生某种错误时,如某个路由器暂时用完了缓冲区, I P有一个简单的错误处理算法:丢弃该数据报,然后发送 I C M P消息报给信源端。任何要求的可靠性必须由上层来提供(如T C P)。
无连接 I P数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是 A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此 B可能在A到达之前先到达。
但同样存在面向连接的虚电路和无连接的数据包。
二.路由算法
对应网络上也存在自适应算法(动态路由,根据网络状态刷新路由表)和非自适应算法(静态路由,可靠)。
(Dijkstra最短通路算法,距离矢量DistanceVector算法,链路状态算法)
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有三个协议:
地址解析协议 ARP(Address Resolution Protocol)
网际控制报文协议 ICMP (Internet Control Message Protocol)
网际组管理协议 IGMP (Internet Group Management Protocol)
TCP传输层
传输层相比于网络层最大的不同就是引入了端口的概念。网络层只管发送地址和目的地址。但是发送主机上有可能有多个程序和同一个接收主机进行传输数据,怎么区分这多个程序呢?就引入了端口的概念。
传输层还有一个职能是定义发送方和接收方基本处理包的行为。上面说到网络层就相当于邮件运输工,它只负责把一包东西从一个地方放到另外一个地方,但是,这包东西是否送达了,送达之后接收方又有什么行为。这些都可以在传输层进行定义。注意,这里说的是可以,你也可以在传输层布不管这些,只做简单的基本封装四元组。你懂的,我说的就是UDP。
包的序号,用来解决网络包乱序(reordering)问题。
Acknowledgement Number就是ACK——用于确认收到,用来解决不丢包的问题。
Window又叫Advertised-Window,也就是著名的滑动窗口(Sliding Window),用于解决流控的。
TCP Flag ,也就是包的类型,主要是用于操控TCP的状态机的。
二、流量控制与滑动窗口
三、TCP建立连接和关闭的三次握手
client和server应该理解为发送方(客户端)和接收方(服务器)
三. 拥塞阻塞 明明网络已经堵塞了,还一个劲地发送大量包,甚至重发,那么这个时候,大家都没得玩了。于是,TCP引入了拥塞窗口(cwnd)的概念。
“每收到一个ACK,拥塞窗口就增加一个报文段”。
当然上图的情况太理想,实际的情况,坑cwnd为2的请求发出去两个报文包的时候,先返回了一个ACK,然后cwnd这个时候就为3,发送方就会继续发送请求包。。。
拥塞避免算法
慢启动使得cwnd是呈指数增长。一定不可能是无限增长的,这里就有个阀值,超过这个阀值,就进入拥塞避免算法。
先说拥塞避免算法,拥塞避免算法说的是拥塞窗口的增加不再是“每收到一个ACK,拥塞窗口就增加一个报文段”。 而是“每收到一个ACK,cwnd = cwnd + 1/cwnd”。
快速回复算法
快速恢复算法是为了不要有一个重传就那么大响应。能尽快恢复到网络流畅时候稳定的状态。
其他