ch3运输层--计算机网络期末复习(持续更新中)
运输层服务后面的原理:
多路复用, 多路分解
可靠数据传输
流控
拥塞控制
运输层位于网络层之上
运输层协议提供的某些服务受到网络层协议的限制。比如,时限和带宽保证。
运输层也提供自己的特殊服务。比如,可靠数据传输服务,安全性服务。
运输层提供的服务
进程通信
面向连接和无连接(是否建立连接)
可靠传输实现原理
网络层:两个主机之间的逻辑通信
运输层:两个进程之间的逻辑通信
网络地址:主机的标识(IP地址)
传输地址: 进程的标识(端口)
运输层协议:
传输控制协议(TCP)
通过流量控制、序号、确认和定时器等确保数据可靠、按序递交,会涉及到
拥塞控制
流量控制
连接建立
用户数据报协议(UDP)
采用best-effort delivery service IP服务的直接扩展,提供不可靠的无序传递
多路复用和多路分解
一个主机上面多个进程,在接口一下,按照主机之间通信,复用,收到以后,再分解到每个进程。
通过套接字(socket)来实现多路复用与分解
套接字相当于从网络向进程传递数据和从进程向网络传递数据的门户
套接字有唯一的标识符
多路复用:从不同的套接字收集源主机上的数据块,用头信息封装每个数据块以创建段,并将这些段传递给网络层
多路分解:将传输层段中的数据传递给正确的套接字
主机上每个套接字分配一个端口号
端口号是16比特的数字,大小在 0~65535之间。源端口+目的端口一共32比特
0~1023的端口号是众所周知的端口号,是受严格限制的。比如HTTP80
当报文段到达主机
(1)运输层检查报文段的目的端口号
(2)将目的端口号定向到相应套接字
(3)报文段中的数据通过套接字进入所连接的进程
主机用IP地址和端口号指明数据段属于哪个合适的套接字
UDP套接字
用端口号创建套接字:
自动分派端口号:
DatagramSocket ServerSocket1 = new DatagramSocket();
应用程序指定端口号:
DatagramSocket ServerSocket2 = new DatagramSocket(9922);
UDP套接字由目的IP地址和目的端口号来标识----只用目的的位置来区分套接字不管谁发
具有不同的源IP地址且/或源端口号,但具有相同的目的IP地址和目的端口号的IP数据报指向同样的套接字(m:1)
套接字不等于首部。UDP首部里面的目的端的和IP首部里面的目的IP地址组合形成套接字。
TCP套接字
TCP 套接字由4部分指定:
(源IP地址,源端口号,目的IP地址,目的端口号)
接收主机使用所有四个值将数据段定位到合适的套接字(1:1)
服务器主机支持很多同时的 TCP 套接字:
每个套接字用4部分来表示
例:Web服务器对每个连接的客户(持久)都有不同的套接字,而非持久 HTTP 将对每个请求有一个不同的套接字
套接字建立过程:
(1)TCP服务器进程在端口(比如80)上等待TCP客户机的连接建立请求。
(2)TCP客户机产生一条连接建立请求并创建客户机套接字
Socket clientsocket = new socket(“服务器主机名”,80)
(3)服务器接收到80端口请求报文后,定位服务器进程,创建一个连接套接字
Socket consocket=welcomesocket.accept()
(4)新创建的套接字通过(源IP地址,源端口号,目的IP地址,目的端口号) 值来标识。若后续报文与这四个值相同,则多路分解到这个套接字。
无连接传输UDP、用户数据报协议
面向应用层报文
为什么会用到UDP------多媒体通信常见
具有实时性,延迟较少,首部也少,效率高
UDP的首部
UDP 有两个字段:首部字段和
原文地址:https://blog.csdn.net/m0_61636632/article/details/139305114
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!