网络基础----认识传输层

引言

在IP的首部有一个协议字段用来标识网络层(IP)的上一层所采用的是哪一种传输传输层协议,根据这个字段的协议号,就可以识别IP传输的数据部分究竟是TCP的内容还是UDP的内容。
所以传输层的IP和UDP,为了识别自己传输的数据部分究竟应该发给哪个应用,也设定了一个这样的编号。

网络层和传输层的作用

1、网络层提供的是主机之间的逻辑通信,传输层提供的是应用进程之间的逻辑通信
2、运输层有对报文的差错检测,网络层只有对IP首部的检测
3、传输层主要的协议是:TCP、UDP,故传输层不一定是面向连接的。

从通信和信息处理的角度来看的,运输层向它上面的应用层提供通信服务。它属于面向通信部分的最高层,同时也是用户功能的最低层。当网络的边缘部分中的两个主机使用网络的核心部分进行端到端的通信时,猪油主机的协议栈才有传输层,而网络的核心的部分中的路由器在转发分组时都用到下三层的功能。
下面我们具体的认识下传输层的作用。我们设局域网1上的主机A和局域网2上的主机B通过互连的广域网进行通信。
这里写图片描述
从IP层来说,通信的两端是两个主机,IP数据报的的首部明确地标志了这两个主机的IP地址。但“两个主机之间的通信”这种方法还不够清楚,这是因为,真正进行通信的实体是在主机中的进程,是这个主机中的一个进程和另一个主机中的一个进程进行交换数据(即通信)。两个主机进行通信就是两个主机中的应用进程互相通信。IP协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付给主机中的应用进程。

运输层的两个作用

复用:应用层所有的应用进程都可以通过传输层,再传送到IP层,这就是复用。
分用:从IP层收到数据后就必须交付给知名的应用进程,这就是分用。

认识传输层

那么我们先来举个例子来说一下,以包裹为例子,邮递员(IP)根据收件人地址(目标IP地址)向目的地(计算机)投递包裹(IP数据报)。包裹到达目的地以后由对方(传输层协议)根据包裹的信息判断最终的接收人(接收端应用程序)。
这里写图片描述
如果我们的快递的单子上值填写了家庭住址和姓氏,我们根本无法判断快递应该投递给哪一位家庭成员。同样收件人的地址如果是学校或者公司,而且只写了一个姓氏,会给投递的工作带来麻烦,因此在日本,投递人一般都会写清楚接收人的全名在我们中国,一个人的姓氏不像日本那样复兴居多,人们也通常不会仅以姓氏称呼一个人,但是也有一种特殊的情况,那就是如果一个收件地址中有多个同名同姓的接收者怎么办,此时往往需要追加电话号码来加一区分。
在TCP/IP协议的通信当中也是如此的,需要值定“姓氏”,即“应用程序”,而传输层必须要指出的是这个具体的程序,为了实现这一功能,使用端口号这样一种识别码。根据端口号就可以识别在传输层上一层应用中所要进行处理的具体程序。

认识端口号

端口号(port)表示了一个主机上进行通信的不同的应用程序。
我们在TCP/IP协议中用“源IP”、‘源端口号’、‘目的IP’、“目的端口号”、“协议号”这样五元组来标识一个通信(可以通过netstat -n来进行查看)。
我们常见的端口号:

  • TCP IP 16位端口号
  • 0-1024:服务端使用的端口号
  • 1024-49151:登记端口号
  • 49152-65535:客户端使用的端口号
  • 0-1024:知名端口号,HTTP、FTP、SSH等这些广为使用的应用层协议,他们的端口号都是固定的。
  • 1024-65535:操作系统动态分配的端口号。客户端程序的端口号,就是由操作系统从这个范围内进行分配的。
    常用进程端口号
FTP TELNET SMTP DNS TFTP HTTP SNMP SNMP(trap)
21 23 25 53 69 80 161 162

认识知名端口号
- ssh服务器:使用22端口
- ftp服务器:使用21端口
- telnet服务器:使23端口
- http服务器:使用443
当我们执行下面的命令,就可以看到知名端口号

cat /etc/services

我们自己在写一个程序的端口号的时候就尽量的要避开这些知名端口号。

一个进程可以绑定多个端口号,但是一个端口号不能被多个进程所绑定。

猜你喜欢

转载自blog.csdn.net/daboluo521/article/details/80653797