传输层简介(一)

458 阅读4分钟

这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战

1. 传输层的功能

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

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

  传输层提供面对连接和无连接的服务。

1)、 传输层为相互通信的应用进程提供了逻辑通信

image.png

  服务使用TCP或UDP的端口侦听客户端请求

  客户端使用IP地址定位服务器,使用目标端口,定位服务

  可以在服务器网卡上设置只开放必要的端口,来实现服务器网络安全 image.png

2)、 传输层协议和网络层协议的主要区别

image.png

3)、传输层的端口

  运行在计算机中的进程是用进程标识符来标志的。

  运行在应用层的各种应用进程不应当让计算机操作系统指派它的进程标识符。这是因为在英特网上使用的计算机操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。

  为了使运行不同操作系统的计算机的应用进程能够相互通信,就必须用统一的方法对TCP/IP体系的应用进程进行标志。

端口

  解决这个问题的方法就是在传输层使用协议端口(Protocol port number),或者通常简称为端口(port)。

  虽然通信的终点是应用进程,但是我们可以把端口想象是通信的终点,因为我们只是把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由TCP来完成。

软件端口和硬件端口

  在协议栈层间的抽象的协议端口是软件端口。

  路由器或交换机上的端口是硬件端口。

  硬件端口是不同设备进行交互的接口,而软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址。

TCP的端口

  端口用一个16位端口号进行标志。

  端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口是没有联系的。

三类端口

  熟知端口,数值一般为0~1023

  FTP:21

  TELENT:23

  SMTP:25

  DNS:53

  HTTP:80

  HTTPS:443

  RDP:3389

  登记端口,数值为1024~49151,为没有熟知端口号的应用程序使用,使用这个范围的端口号必须在IANA登记,以防止重复。

  客户端口号或短暂端口号,数值为49152~65535, 留给客户端进程选择暂时使用。当服务器进程收到客户端进程的报文时,就知道了客户端进程收到了动态端口号。通信结束后,这个端口号可供其他客户端进程以后使用。

2.传输层协议UDP和TCP

  在TCP/IP协议栈,传输层有两个协议TCP和UDP。

  TCP(Transmission Control Protocol, 传输控制协议)协议。TCP需要将要传输的文件分段,传输,建立会话,可靠传输,流量控制。

  UDP(User Data Protocol, 用户数据报协议)协议。UDP一个数据包就能够完成数据通信,不分段,不需要建立会话,不需要流量控制,不可靠传输(屏幕广播,多播,广播)

1)、 UDP

UDP的主要特点

  UDP是无连接的,即发送数据之前不需要建立连接。

  UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。

  UDP是面向报文的,UDP没有拥塞控制,很适合多媒体通信的要求。

  UDP支持一对一、一对多、多对一和多对多的交互通信。

  UDP的首部开销很小,只有8个字节。

用户数据报协议UDP

image.png

UDP的首部格式

image.png

计算UDP检验和的例子

image.png

2)、 TCP

传输控制协议TCP概述

  TCP是面向连接的传输层协议。

  每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点(一对一)。

  TCP提供可靠交付的服务。

  TCP提供全双工通信。

  面向字节流。

TCP的连接

  TCP把连接作为最基础的抽象。

  每一条TCP连接有连个端点。

  TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。TCP连接的端点叫做套接字(socket)。

  端口号拼接到IP地址即构成套接字。

image.png