传输层提供的服务
传输层的功能
●传输层提供进程之间的逻辑通信,即端到端的通信
●复用和分用
●差错检测(首部和数据部分)
●面向连接的TCP和无连接的UDP
端口的作用
●端口标识的是主机中的进程
●硬件端口是不同硬件设备进行交互的接口(路由器,交换机上有)
●软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址
端口号
套接字
●套接字Socket=(IP地址:端口号)
●它唯一地标识网络中的一台主机和其上的一个应用(进程)
无服务连接和面向服务连接
TCP
UDP
注:
1.网络层只提供首部的差错控制
2.数据链服务器托管网路层的S服务器托管网AP是MAC地址,网络层的SAP是IP地址,传输层的SAP是端口。
3.传输层使用的是软件端口
4.用户应用程序使用UDP进行数据传输,那么必须在传输层的上层即应用层提供可靠性方面的全部工作
5.一个TCP报文的首部长度是20B,一个IP数据报的首部长度也是20B
6.熟知端口号是0—1023
7.登记端口号是1024—49151
8.短暂端口号是49152—65535
UDP
UDP数据报
UDP仅在IP的数据报服务之上增加了两个最基本的服务:复用和分用以及差错检测。
UDP的优点:
●UDP无需建立连接
●无连接状态
●分组首部开销小(8B)
●应用层能更好地控制要发送的数据和发送时间
●UDP支持一对一、一对多、多对一和多对多的交互通信。
UDP的首部格式
●源端口
●目的端口
●长度
●校验和
UDP校验
●校验时,若UDP数据报部分的长度不是偶数个字节,则需填入一个全0字节
●如果UDP校验和校验出UDP数据报是错误的,那么可以丢弃,也可以交付给上层,但是需要附上错误报告,即告诉上层这是错误的数据报
●通过伪首部,不仅可以检查源端口号、目的端口号和UDP用户数据报的数据部分,还可以检查IP数据报的源IP地址和目的地址。
注:
1.UDP数据报的格式包括UDP源端口号、UDP目的端口号、UDP报文长度和校验和,但不包括UDP数据报首部长度。因为UDP数据报首部长度是固定的8B,所以没有必要再设置首部长度字段。
2.UDP的校验和功能不是必需的,可以不使用
3.如果UDP校验和计算结果为0,那么在校验和字段置为全1
4.UDP校验和字段的计算包括一个伪首部、UDP首部和携带的用户数据
5.UDP校验和的计算方法是二进制反码运算求和再取反
TCP
TCP的特点:
●面向连接的,逻辑连接
●每条TCP连接是一对一的
●全双工通信
●可靠的
●面向字节流的
TCP报文段
●首部(其首部的前20B是固定的。TCP首部最短为20B,后面有4N字节是根据需要而增加的选项,长度为4B的整数倍。)
●数据
TCP连接管理
●连接建立
●数据传输
●连接释放
TCP的连接建立:
●三次握手
●服务器端的资源是在完成第二次握手时分配的
●而客户端的资源是在完成第三次握手时分配的
TCP连接的释放:
●四次握手
TCP的可靠传输
●校验(与UDP一致)
●序号(保证数据有序提交给应用层)
●确认
●重传(超时和冗余ACK)
TCP流量控制
●TCP提供流量控制服务来消除发送方(发送速率太快)使接收方缓存区溢出的可能性
TCP拥塞控制
●接收窗口rwnd
●拥塞窗口cwnd
注:
1.TCP伪首部与UDP伪首部一样,包括IP分组首部的一部分。IP首部中有一个协议字段,用指明上层协议是TCP还是UDP。17代表UDP,6代表TCP
2.报头长度是20~60B,由于数据偏移字段的单位是4B,也就是说当偏移取最大时TCP首部长度为15×4=60B
3.TCP使用大小可变的滑动窗口进行流量控制
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
作者主页:编程指南针 简介:Java领域优质创作者、CSDN博客专家 Java项目、简历模板、学习资料、面试题库、技术互助 文末获取源码 项目编号:BS-YL-004 本系统基于JSP/SERVLET实现开发,数据库采用MYSQL,开发工具采用IDEA或ECL…