传输层

传输层概述:

传输层向上面的应用层提供通信服务,属于面向通信部分的最高层,也是用户功能中的最底层。传输层位相互通信的应用进程提供了逻辑通信。
传输层

应用进程之间的通信:

两个主机进行通信实际上就是两个主机中的应用进程相互通信。应用进程之间的通信又称为端到端的通信。

传输层的功能:

传输层一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同端口向下交到传输层,再往下就共用网络层提供的服务。

具体功能:

1、传输层是为应用进程之间提供端到端的逻辑通信(网络层是为主机之间提供逻辑通信)。

2、传输层要对收到的报文进行差错检测。

3、传输层需要两种不同的运输协议,即面向连接的用户数据报协议TCP(Transmission Control Protocol)和无连接的传输控制协议UDP(User Datagram Protocol)。

TCP和UDP的简述:

1、数据单位

运输协议数据单元TPDU(Transport Protocol Data Unit):两个对等运输实体在通信时传送的数据单元。

TCP报文段(segment):TCP传送的数据单位协议。

UDP报文(or用户数据报):UDP传送的数据单位协议。

2、主要区别:

a、UDP:在传送数据之前不需要先建立连接。对方的传输层再上到UDP报文后,不需要给出任何确认。虽然UDP不替考可靠服务,但在某些情况下UDP是一种最有效的工作方式。

b、TCP:TCP则提供面向连接的服务。TCP不提供广播or多播服务。由于TCP需要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

端口:

端口的概念:

传输层TCP和UDP数据结构中的一个字段。以银行为例,每个窗口就是一个“端口”,处理不同的业务,有的窗口处理存取钱,有的处理挂失,有的处理贷款,还有的给VIP窗口等等。

端口用一个16bit端口号进行标志。端口号只具有本地意义,在网络传输过程中无意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机相同端口号是没有联系的。

端口的作用:让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应将其报文段中的数据向上通过端口交付给应用层相应的进程。从这个意义上讲,端口是用来标志应用层的进程。
传输层

两类端口:

1、熟知端口,数值一般是0~1023。当一种新的应用程序出现时,必须为它指派一个熟知端口。一般不支持用户自定义。

2、一般端口,用来随时分配给请求通信的客户进程。

注1:端口号范围:0~65535;熟知端口号:0~1024;用户自定义端口号:大于1023。

注2:0~1023端口在Linux下,只有root可以启动,其他用户没有权限。

传输层

网络中socket的概念:

TCP使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同事将TCP连接的端点成为插口(socket)or套接字or套接口。

socket和端口、IP的关系:

socket的组成为目的IP、源IP、目的端口号、源端口号、协议类型(TCPorUDP)。

注:socket的多种不同意思:(以下是编程中的socket)

1、应用编程接口API成为socketAPI,简称socket;

2、socketAPI中使用的一个函数名也叫作socket;

3、调用socket函数的端点成为socket;

4、调用socket函数时其返回值成为socket描述符,简称socket;

5、在操作系统内核中联网协议的Berkele实现,称为socket实现。
传输层