1、TCP 协议和UDP协议
TCP(传输控制协议):需要将要传输的文件分段传输 建立会话 可靠传输 流量控制
UDP(用户数据协议):一个数据包就能完成数据通信 不需要建立会话 不可靠传输 不需要流量控制 屏幕广播 多播
2、传输层协议和应用层协议关系
传输层协议+端口=应用层协议
常见应用层协议使用的端口
http=TCP+80
https=TCP+443
RDP(远程桌面)=TCP+3389
FTP=TCP+21
共享文件夹=TCP+445
SMTP(发邮件)=TCP+25
telnet=TCP+23
SQL=TCP+1433
DNS=UDP+53
POP3=TCP+110
3、服务和应用层协议的关系
服务使用TCP或者UDP的端口侦听客户端请求
客户端使用IP地址定位服务器,使用目标端口定位服务
可以在服务器网卡上设置只开发必要的端口实现服务器网络安全
4、查看服务器侦听的端口
netstat -an 查看侦听的端口
netstat -n 查看建立的会话
netstat -nb 查看建立会话的进程
netstat 192.168.80.100 3389 测试远程计算机某个端口是否打开
5、传输层功能
为相互通信的应用进程提供了逻辑通信(网络层是主机到主机)
6、传输层的端口
16位二进制,端口号只具有本地意义,即端口号只是为了标志本计算机应用层的各进程,在因特网中的不同计算机的相同端口没有联系。
熟知端口:0-1023
登记端口号:1024-49151
客户端端口:49152-65535
7、UDP的主要特点
1、无连接,发数据前不需要连接
2、使用尽最大努力交付,不保证可靠交付,也不使用拥塞控制
3、面向报文,适合多媒体通信
4、支持一对一,一对多,多对一、多对多
5、首部开销小,只有8个字节
8、UDP首部
8字节:源端口,目的端口,长度,校验和各占2字节,长度为UDP首部加数据包总长度,检验和需要使用伪首部,包括4字节源IP地址,4字节目标IP地址,1字节0,1字节协议号,2字节UDP长度;
9、TCP
1、面向连接的传输层协议
2、每一条TCP都是一对一的
3、TCP提供可靠交付的服务
4、TCP提供全双工通信
5、面向字节流
6、TCP连接的是套接字(端口加上IP地址)
10、可靠传输的工作原理----------停止等待协议 自动重传请求(ARQ)
发送后等待一个RTT,如果没有返回信息,重新发送数据
确认信息丢失后,发送端再次发送,接收端丢掉重发的信息,重新发送确认信息
确认迟到,不做任何处理
信道利用率:此种协议简单,但是利用率低 发送数据包时间Td,往返时间RTT,确认时间Ta
信道利用率Ut=Td/(RTT+Td+Ta),提高利用率方法为连续发包,不必听下等待确认;
11、连续ARQ协议
窗口内的不能删除,直到接收到确认信息;
-------累计确认:一次发多个,中间有没收到的话,这一个开始往后重新发送
12、TCP报文段首部格式
序号表示数据的第一个字节是整个文件的第几个字节
确认号是接收端返回到发送端应该发送的序号
记录TCP报文段第几个字节开始有数据 4位,一个1代表4个字节,首部最长最长15X4个字节
URG为1则不排队 ACK为1确认号才有效 SYN同步,发起会话
RST为1,TCP会话出现严重错误,需要中断连接 FIN为1则释放连接 PSH为1,直接提交给应用程序
窗口:缓存大小 校验和:和UDP一致 紧急指针 URG为1时生效,如果为30,则1-30数据需要紧急处理
13、TCP如何实现可靠传输
1、以字节为单位的滑动窗口
超时重传时间的选择 RTTs=(1-α)x(旧的RTTs)+α x(新的RTT样本)
超时重传时间略大于RTTs,RFC2988推荐α为1/8
2、流量控制
通过调整接受窗口大小来控制
3、拥塞控制
条件:对资源需求的总和>可用资源
拥塞控制:是一个全局性的过程,涉及到所有主机、路由器
流量控制:往往只有点对点之间
作用:避免死锁
慢启动算法原理:先发1个,不堵塞则指数增长 慢启动门限:ssthresh 当cwnd超过ssthresh,不再指数增长,改为线性增加(加法增大),当开始丢包时,重设ssthresh=cwnd/2;然后cwnd置1再次开始慢启动(拥塞避免算法)
快重传和快恢复
快重传:接收端发现丢包立即发送连续3个确认
快恢复:不进入慢开始,而是直接从新的ssthresh开始
发送窗口上限值=min[rwnd,cwnd] 接受窗口和拥塞窗口较小值
4、TCP传输连接管理
三阶段:连接建立、数据传送、连接释放
连接建立方式:客户端服务器方式
三次握手建立TCP连接:
1、客户机发送同步数据包(SYN=1,ACK=0,序号seq=0) 客户机状态SYN-SENT 服务器LISTEN
2、服务器返回数据包(SYN=1,ACK=1,seq=y,确认号=x+1) 客户机SYN-SENT到ESTABLISHED 服务器SYN-RCV
3、客户机再次发送数据包(ACK=1,seq=x+1,ack=y+1) 服务器接收到后都变成ESTABLISHED
第三个数据包作用:如果客户机有一个数据包延迟到达,导致发送两个,会使得服务器等待,所以服务器需要再次接收一个确认。
连接释放:客户端停止发送数据,发出连接释放报文段 FIN=1,seq=u等待服务器确认
服务器发出确认 确认号u+1,seq=v,此时客户端不再向服务器发送,但仍可以接收,若发送时完毕,客户端发送释放报文段;