端口:

熟知端口0-1023
登记端口 1024-49151
客户端端口 49152-65535

熟知端口:一些内部协议的端口。
等级端口:开发者申请占用端口。
客户端端口:请求服务所使用端口。

查看已经建立的会话:

netstat -n|find 'ESTABLISHED'

UDP主要特点

无连接
不可靠传输,不使用拥塞控制
面向报文。没有拥塞控制,适合多媒体通信要求。
UDP支持一对一、一对多、多对一和多对多交互通信。
UDP首部开销小,只有八个字节。

图片说明
图片说明
图片说明

TCP(传输控制协议)

1.面向连接的
2.端对端的,点对点通信(ip地址加上端口代表一个点)。
3.可靠传输
4.全双工通信(同时收和发)
5.面向字节流
6.流量控制
7.拥塞控制

如何面向字节流的

图片说明

点到点通信

图片说明
图片说明

TCP如何实现可靠传输

停止等待协议

图片说明
图片说明

自动重传请求

使用上述确认和重传机制,可以在不可靠的传输网络上实现可靠的通信,这种可靠传输协议通常称为ARQ(自动重传请求),重传的请求是自动进行的,接收方不需要发送方重传某个出错的分组。

停止等待协议的优缺点

优点:简单
确定:信道利用率效率太低
图片说明
TD:发送数据包时间
RTT:数据包往返时间
TA:接受数据包时间
信道利用率:U=TD/(TD+RTT+TA)
思考:由于RTT,TA都是确定的,可以通过增加TD来增加信道利用率。(糖水加糖)
图片说明

流水线传输如何实现可靠传输

连续ARQ协议:实现流水线传输的可靠传输
图片说明
实现步骤:
将滑动窗口里的数据包发送完毕后等待,当收到第一个数据报的确认信号后,滑动窗口向后移。并删除缓存中的第一个数据包

另一种更高效的传输方式:累计确认

图片说明
实现方式:接收方是累计确认的,不用每一个都进行确认,图中确认3,代表123都收到了。
有点:更高效
缺点:中间中断后,后面收到的,发送方仍然重新发送。

TCP报文段的首部格式

图片说明
序号:数据包中的第一个字节是数据的第多少个字节。
确认号:收到数据包最后一个字节,发送方下一个数据包该发第多少个字节。
数据偏移:记录TCP报文段第多少个字节后是数据了。只有四位,但是每一位代表四个字节,所以最多代表第60个字节后开始是数据,所以可选和填充最多能有40个字节。
保留:
窗口:告诉对方自己的接收缓存有多大,设置对方的发送缓存
图片说明
紧急指针:只有URG=1才起作用
选项:sack选择性确认,不用重复发送。

标志位:

图片说明
URG:置一后,优先传送,
ACK:为1,确认号有效。
SYN:同步标志位。(建立会话请求过程为1)
PSH:接收方提前读取缓存中该数据包
RST:异常中断,后面的数据包不用发送了
FIN:释放连接。

图片说明
MSS:能接收的最大数据包
图片说明
图片说明
win缓存:对方发了那么多数据包,如果没有确认,就等待。
图片说明

输入URL后发生的故事

1.获取网关的MAC地址
2.DNS服务器解析域名,获取被访问服务器的ip地址。
3.TCP三次握手建立连接
图片说明
图片说明

http数据报文在传输层里的数据包变化

图片说明
4.发起http请求

确认号和序号计算:

图片说明
确认号:代表需要对方从哪个字节开始发数据
序号:代表自己从那个字节开始发数据 。

TCP如何实现可靠传输

1.以字节为单位的滑动窗口技术:

图片说明
图片说明

TCP如何实现流量控制

通过接收方向发送方发送接收窗口大小来同步设置发送方的发送窗口大小(rwnd)

TCP如何避免网络拥塞

拥塞控制:指网络中所有计算机,是指网络中所有产生流量的对象,与流量控制中的点对点不同。
####出现拥塞:
对资源需求的总和>可用资源

拥塞控制和流量控制的区别:

拥塞控制是一个全局性的过程,涉及所有主机、所有路由器、以及与降低网络传输性能有关的所有因素。
流量控制往往是给定的发送端和接收端之间点对点的通信量的控制,他所要做的就是抑制发送端发送数据的速率,以便接收端来得及接收。
图片说明

拥塞控制的实现

慢开始

图片说明
图片说明

发送方维持拥塞窗口(cwnd)

发送方维持拥塞窗口的原则是:
1.只要网络没有出现拥塞,拥塞窗口就再增大一些,以 便把更多的分组发送出去。
2.只要网络出现拥塞,拥塞窗口就减少,以减少注入到网络中的分组数。

重点

拥塞控制并非能完全避免拥塞,利用以上措施完全避免网络拥塞还是不可能。
拥塞控制是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。

快重传

累计确认过程中,当发现丢包后,接收方连续发三次确认,来让发送方重发丢失的数据包

快恢复

图片说明
发送窗口的实际实际上限值 = min[rwnd,cwnd]