运输层位于网际层和应用层之间,属于端到端通信,有两个重要的功能就是复用和分用
复用:发送方不同的进程可以使用运输层同一个协议栈进行输送数据
分用:就是指接收方在收到报文后,抱去首部,可以将这些数据正确的交给对应的应用进程
网络层是为各个主机提供通信的,运输层是为各个应用程序提供逻辑通信的
根据不同的需求,运输层有两个非常重要的运输协议TCP udp
运输层向高层屏蔽了下面的网络层的实现细节,使用户感觉是在两个运输层实体进行的一个端到端的通信;但是这个逻辑信道却因为运输层使用的协议不同而对上层产生了额很大的影响
尽管下面的网络是不可靠的,但是使用tcp的时候,就是一个面向连接的全双工通信的可靠信道,udp就是不可信的通道
udp用户数据报协议
tcp传输控制协议
udp的面相无连接的,虽然不是可信的协议,但是很多时还是很用的的,效率高
tcp是面向连接,每次通信前都需要建立连接,结束后释放链接,因为是可靠的通信,所以需要很多处理可靠的额外开销,同时不提供广播和组播
因为主机上的进程的创建和撤销是动态的,所以我们无法识别目的主机IDE进程位置。,我们往往通过目的主机来识别进程位置,但是我们不知道具体的应用进程是主机上的哪一个。解决这个问题就是引入了协议端口号(端口)
协议栈上的协议端口是软件端口,路由器和主机上的端口是硬件端口,硬件端口是处理主机之间的,软件端口是处理运输实体和协议进程之间的交互的一种地址
端口号是16位的,
分为服务器端口和客户端端口
服务器端口:0-1023 熟知端口号:一些重要的应用程序的端口号
1024-49151 登记端口号:没有熟知端口号的称为登记端口号
短暂端口号:客户应用进程临时使用的