Linux网络编程基础_6_传输层(上)--传输层概述
传输层
--传输层概述
一、概述
从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
传输层为相互通信的应用进程提供了逻辑通信
1、应用进程之间的通信
两个主机进行通信实际上就是两个主机中的应用进程互相通信。
应用进程之间的通信又称为端到端的通信。
传输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到传输层,再往下就共用网络层提供的服务。
“传输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:传输层之间的通信好像是沿水平方向传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接
2、传输层协议和网络层协议的主要区别
3、传输层的主要功能
1)传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
2)传输层还要对收到的报文进行差错检测。
3)传输层需要有两种不同的运输协议,即面向连接的用户数据报协议UDP(UserDatagram Protocol)和无连接的传输控制协议TCP(Transmission Control Protocol)
二、TCP与UDP
1、数据单位
两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元TPDU(Transport Protocol Data Unit)。
TCP传送的数据单位协议是TCP报文段(segment)
UDP传送的数据单位协议是UDP报文或用户数据报。
2、主要区别
a)UDP在传送数据之前不需要先建立连接。对方的传输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。
b)TCP则提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
【另】
a)传输层的UDP用户数据报与网际层的IP数据报有很大区别。IP数据报要经过互连网中许多路由器的存储转发,但UDP用户数据报是在传输层的端到端抽象的逻辑信道中传送的。
b)TCP报文段是在传输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的传输层是否建立了TCP连接。
三、端口
端口就是传输层服务访问点TSAP。
1、介绍
端口用一个16bit 端口号进行标志。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
2、作用
端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。
从这个意义上讲,端口是用来标志应用层的进程
3、两类端口
一类是熟知端口,其数值一般为0~1023。当一种新的应用程序出现时,必须为它指派一个熟知端口。
另一类则是一般端口,用来随时分配给请求通信的客户进程。
4、常用端口号
应用程序 |
Echo |
Ftp |
Ssh |
Telnet |
Smtp |
Dns |
端口 |
7 |
21,20 |
22 |
23 |
25 |
53 |
应用程序 |
Dhcp |
Tftp |
Pop3 |
Socks |
Squid |
pcanywhere |
端口 |
67,68 |
69 |
110 |
1080 |
3128 |
5632 |
四、插口(socket)
TCP使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将TCP连接的端点称为插口(socket),或套接字、套接口。
1、插口和端口、IP地址的关系
2、同一个名词socket的多种不同意思
1)应用编程接口API称为socketAPI, 简称为socket。
2)socketAPI 中使用的一个函数名也叫作socket。
3)调用socket函数的端点称为socket。
4)调用socket函数时其返回值称为socket描述符,可简称为socket。
5)在操作系统内核中连网协议的Berkeley实现,称为socket实现。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。