做微网站价格,网站建设的具体实施方案,h5免费,做网站要以单位传输层
从通信和信息处理的角度看#xff0c;传输层向它上面的应用层提供通信服务#xff0c;属于面向通信部分的最高层#xff0c;同时也是用户功能中的最低层
传输层功能#xff1a;
传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别区别是#xf…传输层
从通信和信息处理的角度看传输层向它上面的应用层提供通信服务属于面向通信部分的最高层同时也是用户功能中的最低层
传输层功能
传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别区别是网络层提供的是主机之间的逻辑通信传输层可以实现多路复用和多路分解的功能使得多个应用程序可以共享同一个网络连接。它通过使用端口号来区分不同的应用程序并将数据传输到相应的应用程序中传输层负责将上层应用层传输的数据分段并在目标主机上将这些数据段重新组装成完整的数据。这个过程称为分段和重组传输层可以对传输过程中可能出现的错误进行检测和纠正以确保数据的完整性和准确性。它通过使用校验和等技术来检测传输过程中的错误并采取相应的措施进行纠正
传输层的端口
端口的作用
端口能让应用层的各种应用进程将其数据通过端口向下交付给传输层
传输层的SAPService Access Point是端口网络层的SAP是IP地址数据链路层的SAP是MAC地址
在协议栈层间的抽象的协议端口是软件端口它与路由器或交换机上的硬件端口是完全不同的概念
硬件端口是不同硬件设备进行交互的接口软件端口则是应用层的各种协议进程与传输实体进行层间交互的一种地址传输层使用的是软件端口
端口号
端口号是一种用于标识计算机网络中应用程序或服务的数字标识
端口号范围从0到65535其中0到1023是被保留的系统端口号用于一些常见的服务而1024到65535是动态或私有端口号用于分配给应用程序或服务
套接字
套接字Socket是计算机网络中用于实现网络通信的一种机制它是传输层和应用层之间的接口。套接字允许应用程序通过网络发送和接收数据并提供了一种通用的编程接口使得应用程序可以独立于底层网络协议来实现网络通信
所谓套接字实际上是一个通信端点
套接字 (主机IP地址 端口号)
无连接服务
无连接服务是指在通信双方之间发送数据时不需要事先建立连接的通信方式。每个数据包都是独立发送的发送者不需要等待接收者的响应也不需要维护连接状态
面向连接服务
面向连接服务是指在通信双方之间发送数据之前需要先建立连接并维护连接状态。在连接建立之后通信双方可以进行可靠的、面向流的数据传输并且可以保证数据的顺序和完整性
UDP
概述
无连接性UDP是一种无连接的协议通信双方之间不需要建立连接就可以直接发送数据。每个UDP数据包都是独立的发送者不需要等待接收者的确认或响应不可靠性UDP不保证数据的可靠传输数据包可能会丢失、重复、延迟或乱序到达。UDP不提供重传机制、流量控制或拥塞控制因此不能保证数据的完整性和顺序性简单性UDP协议相比于TCP协议更加简单因为它不需要建立连接、维护连接状态或进行流量控制。UDP的头部信息也相对较小只包含源端口号、目标端口号、长度和校验和等字段高效性由于不需要进行连接的建立和维护以及不需要进行重传和流量控制UDP协议的传输效率相对较高。它适用于一些对传输延迟要求较高的实时应用如音视频通信、在线游戏等
UDP的首部格式 0 7 8 15 16 23 24 31
--------------------------------
| 源端口号 | 目的端口号 |
--------------------------------
| 长度 | 校验和 |
--------------------------------
| |
| 数据可选 |
| |
-------------------------------- 源端口号16比特指示数据报的发送者端口号 目的端口号16比特指示数据报的接收者端口号 长度16比特指示UDP数据报包括首部和数据的总长度以字节为单位。长度字段的最小值为8字节UDP首部的长度最大值为65535字节 校验和16比特用于对UDP数据报进行校验的校验和字段。校验和的计算方式涉及UDP首部和数据报的内容 数据可选包含实际的应用数据。数据字段的长度可以为0表示UDP数据报不携带任何应用数据
UDP校验
UDP校验和是一种简单的差错检测机制用于检测UDP数据报在传输过程中是否发生了错误或损坏。UDP校验和的计算方法基于数据报的所有内容包括UDP首部和数据字段
过程 将UDP首部和数据字段划分为若干个16比特的字如果数据字段的长度不是16比特的整数倍则在末尾补零 将这些16比特的字两两相加得到一个16比特的中间结果 将所有的16比特的中间结果相加直到得到一个32比特的累加和 取累加和的反码作为校验和
在接收端接收到UDP数据报后会重新计算校验和并与接收到的校验和进行比较以确定数据报是否损坏或错误。如果校验和匹配则认为数据报未损坏如果校验和不匹配则认为数据报可能已损坏并丢弃该数据报
TCP
TCP报文段 源端口号16比特发送端口号表示数据发送方的端口号 目的端口号16比特接收端口号表示数据接收方的端口号 序列号32比特用于标识数据流中的每个字节的序号用于实现数据的顺序传输和可靠传输 确认号32比特用于确认接收到的数据字节的序号表示期望接收的下一个数据字节的序号 数据偏移4比特指示TCP首部的长度以32比特字为单位用于指示TCP报文段的首部长度 保留6比特保留字段暂时没有使用用于未来扩展 控制位6比特包含了多个控制标志位用于控制TCP的各种行为如SYN、ACK、FIN、RST等 窗口大小16比特用于流量控制表示发送方期望接收方发送的数据量 校验和16比特用于对TCP首部和数据进行校验的校验和字段 紧急指针16比特用于指示紧急数据的位置 选项可选用于指定一些额外的控制选项如最大报文段长度、时间戳等 数据可选包含了应用层的数据是TCP传输的实际数据内容
TCP连接管理
TCP连接
TCP是面向连接的协议因此每个TCP连接有三个阶段连接建立、数据传送、连接释放
TCP把连接作为最基本的抽象每条TCP连接有两个端点TCP连接的端点不是主机不是主机的IP地址不是应用进程也不是传输层的协议端口TCP连接的端口称为套接字(socket)端口拼接IP地址构成套接字 TCP连接的建立采用客户/服务器方式。主动发起连接建立的应用进程称为客户机(Client)而被动等待连接建立的应用进程称为服务器(Server)
过程
客户机的TCP首先向服务器的TCP发送一个连接请求报文段。这个特殊的报文段中不含应用层数据其首部中的SYN标志位被置为1。另外客户机会随机选择一个起始序号seq x(连接请求报文不携带数据但要消耗一个序号)服务器的TCP收到连接请求报文段后如同意建立连接就向客户机发会确认并位该TCP连接分配TCP缓存和变量。在确认报文段中SYN和ACK位都被置为1确认号字段的值位x 1并且服务器随机产生起始序号seq y (确认报文不携带数据但也要消耗一个序号) 确认报文段同意不包含应用层数据当客户机收到确认报文段后还要向服务器给出确认并且也要给该连接分配缓存和变量。这个报文段的ACK标志位置1序号字段为 x 1确认号字段 ack y 1该报文段可以携带数据若不携带数据则不消耗序号
TCP连接的释放 TCP连接的释放是指在通信双方完成数据传输后关闭TCP连接的过程。TCP连接的释放过程通常分为四个步骤即TCP的四次挥手Four-way Handshake
客户端发送FIN报文段当客户端完成数据传输后它会向服务端发送一个FIN结束报文段表示客户端不再发送数据并且请求关闭连接服务端发送ACK报文段服务端接收到客户端的FIN报文段后会向客户端发送一个ACK确认报文段确认收到了客户端的FIN报文段但是表示服务端仍然可以发送数据服务端发送FIN报文段当服务端也完成数据传输后它会向客户端发送一个FIN报文段表示服务端不再发送数据并且请求关闭连接客户端发送ACK报文段客户端接收到服务端的FIN报文段后会向服务端发送一个ACK报文段确认收到了服务端的FIN报文段表示双方都准备好关闭连接
服务器
1. 创建服务器套接字 server_socket
2. 将服务器套接字 server_socket 绑定到指定的 IP 地址和端口
3. 开始监听传入的连接请求listen
4. 当有连接请求到达时1. 接受连接请求并创建一个新的套接字 client_socket2. 从客户端接收数据recv3. 处理接收到的数据4. 向客户端发送响应数据send5. 关闭 client_socket
5. 关闭服务器套接字 server_socket客户端
1. 创建客户端套接字 client_socket
2. 连接到指定的服务器 IP 地址和端口connect
3. 向服务器发送数据send
4. 接收服务器的响应数据recv
5. 处理接收到的数据
6. 关闭客户端套接字 client_socketTCP可靠传输
TCP传输控制协议提供了可靠的数据传输机制确保数据能够按照正确的顺序、完整地传输到目标主机。TCP的可靠传输主要T通过以下几种机制来实现
序列号和确认机制TCP在传输数据时会给每个数据字节分配一个序列号Sequence Number用于标识数据流中每个字节的位置。接收端会向发送端发送确认ACK报文段确认收到的最后一个字节的序列号从而实现对数据的可靠传输超时重传机制TCP在发送数据时会设置一个定时器等待接收到对应的确认报文段。如果在定时器超时之前没有收到确认报文段发送端会认为数据丢失或损坏然后重新发送数据。通过超时重传机制TCP能够保证数据的可靠传输滑动窗口机制TCP使用滑动窗口机制来进行流量控制和拥塞控制。接收端可以通过发送窗口Receive Window来告知发送端自己的可接受数据量发送端根据接收窗口的大小来调整发送速率。通过滑动窗口机制TCP能够避免发送方发送过多的数据导致接收方无法及时处理从而实现流量控制和拥塞控制 坏然后重新发送数据。通过超时重传机制TCP能够保证数据的可靠传输滑动窗口机制TCP使用滑动窗口机制来进行流量控制和拥塞控制。接收端可以通过发送窗口Receive Window来告知发送端自己的可接受数据量发送端根据接收窗口的大小来调整发送速率。通过滑动窗口机制TCP能够避免发送方发送过多的数据导致接收方无法及时处理从而实现流量控制和拥塞控制重复消除机制TCP在接收到重复的数据时会进行重复消除避免重复数据对应用程序造成影响。TCP通过使用序列号和确认号来检测重复的数据然后丢弃重复的数据从而确保应用程序只接收到一份正确的数据