传输层协议位于TCP/IP协议栈第四层,为应用程序提供服务。传输层定义了主机应用程序之间端到端的连通性。
1.端到端的通信
传输层中也有类似于地址的概念,就是端口号(一个协议对应一个端口号)。端口号用来识别同一台计算机中进行通信的不同应用程序。因此它也被称为程序地址。
其中发送端口号(源端口号)是随机的,且大于1023,0——1023已被公邮协议占用。发送端和接收端的目标端口号和源端口号相互对调。
关于端口号:
·是定义主机中运行的进程的标识符
·在TCP/IP协议中端口号是0——65535之间的整数
·TCP/IP模型中传输层的两个协议TCP和UDP依靠端口号区分不同的进程
IANA(International Assigned Numbers Authority,互联网地址指派机构):将端口号划分为3个范围:熟知的、注册的和动态的(或私有的)
·熟知端口:0——1023,由IANA指派和控制
·注册端口:1024——49151,IANA不指派也不控制,只能在IANA上注册以防重复
·动态端口:49152——65535,既不用指派也不用注册,它们可以被任何进程使用,是临时的端口
常见端口号
2.TCP的可靠性
面向连接的传输:通信时确保双方都接收到数据
最大报文段长度
传输确认机制
首部数据的检验和
流量控制
实现原理:(TCP的首部报文结构)
三次握手与四次挥手
SYN:请求建立连接的标志,置位为1时说明是请求建立连接的数据包
TCP的半关闭状态
分段和重组
(鸡蛋放在不同的篮子里)
MSS=MTU-网络层头部-传输层头部
确认和重传
滑动窗口(流量控制机制)
拥塞控制和慢启动
递增发送的数据值直到达到窗口值