计算机网络基础(3) 您所在的位置:网站首页 各层对应的协议 计算机网络基础(3)

计算机网络基础(3)

2024-07-18 00:00| 来源: 网络整理| 查看: 265

1.TCP/IP协议体系概述      

         TCP/IP是指传输控制协议/网际协议,是针对Internet开发的一种体系结构和协议标准,其目的在于解决异种计算机网络的通信问题,使得网络在互连时把技术细节隐藏起来,为用户提供一种通用、一致的通信服务。通常所说的TCP/IP协议实际上包含了大量的协议和应用,并且由多个独立定义的协议组合在一起。因此更确切地说,TCP/IP是一个协议族而不是一种协议。

       我们可以看出,TCP/IP模型与OSI七层模型之间在分层上的区别,TCP/IP模型没有表示层和会话层,网络层就是OSI参考模型的网络层,网络接口层相当于OSI参考模型中的物理层和数据链路层。但是无论是OSI参考模型还是TCP/IP模型都不是完美的,一般在学习网络时,会采取折中的方法,采用一种五层协议的结构,包括物理层,数据链路层,网络层,传输层和应用层。但是本文主要讲的还是TCP/IP模型。

2. 数据的传输单位:

我们听到过包,帧,数据包,段,消息,比特这六个词语来表达数据的传输单位,那么他们之间有什么区别呢?我们可以大致区分如下:

     包(packet)可以说是全能性术语    帧(frame)用于表示数据链路层中包的单位    数据包是 IP 和 UDP 等网络层以上的分层中包的单位    段则表示 TCP 数据流中的信息    消息(message)是指应用协议中数据的单位    比特(比特)是指物理层的传输单位

       通过下面的图片,我们可以简单了解一下TCP/IP模型封装数据的过程,从应用层往下 ,每一层都加上各自的头部信息,在头部信息中包含了该层必要的信息,然后向下传输,从下一层的角度来看,从上一层收到的包都当做该层的数据。到网络接口层还要加上尾部信息,然后通过传输介质以及相应的中间设备传输到目的端,最后再逐层对封装好的数据进行解封。实现通信。

3. 数据的处理流程:

下图中以用户A向用户B发送邮件为例简单分析数据的处理流程:

1)应用程序处理

    首先应用程序会对要传输的数据进行编码处理,这些编码相当于 OSI 的表示层功能;编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接、何时发送数据的管理功能,相当于 OSI 的会话层功能。

2)TCP 模块的处理

    TCP 根据应用的指示,负责建立连接、发送数据以及断开连接。TCP 提供将应用层发来的数据顺利发送至对目的端的可靠传输。为了实现这一功能,需要在应用层数据的前端附加一个 TCP 首部,包括源端口目的端口等信息。

3)IP 模块的处理

    IP 将 TCP 传过来的 TCP 首部和 TCP 数据合起来当做自己的数据,并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,参考路由缓存表选择接受此 IP 包的路由或主机。

4)网络接口的处理

    从 IP 传过来的 IP 包对于网络接口层来说就是数据。给这些数据附加上链路层的首部并进行发送处理,生成的链路层数据包将通过物理层传输给接收端。

5)网络接口的处理

    主机收到以链路层的包后,首先从链路层首部找到 MAC 地址判断是否为发送给自己的包,若不是则丢弃数据。    如果是发送给自己的包,则从链路层包首部中的类型确定数据类型,再传给相应的模块,如 IP、ARP 等。这里的例子则是 IP 。

6)IP 模块的处理

    IP 模块接收到数据后也做类似的处理。从包首部中判断此 IP 地址是否与自己的 IP 地址匹配,若不匹配则丢弃。如果匹配则根据首部的协议类型将数据发送给对应的模块,如 TCP、UDP。这里的例子则是 TCP。另外,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由缓存表,在调查应该送往的主机或路由器之后再进行转发数据。

7)TCP 模块的处理

    在 TCP 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。

8)应用程序的处理

    接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。

    注:TCP包关注端口号,接收到消息返回ACK信号;IP包关心目的IP地址,负责把包发送出去,但是并不关心目的主机是否收到。  

4.TCP/IP各层的主要功能

接下来我们将自顶向下详细介绍各层的功能

1>应用层

应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、NFS、HTTP。

文件传输协议FTP(File Transfer Protocol),一般上传下载用FTP服务,数据端口是20H,控制端口是21H。TELNET服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。域名解析服务DNS(Domain Name Service),提供域名到IP地址之间的转换,使用端口53。简单邮件传输协议SMTP(Simple Mail Transfer Protocol),用来控制信件的发送、中转,使用端口25。网络文件系统NFS(Network File System),用于网络中不同主机间的文件共享。超文本传输协议HTTP(Hypertext Transfer Protocol),用于实现互联网中的WWW服务,使用端口80。 2>传输层 分段及封装应用层送来的数据提供端到端的传输服务在发送主机与接收主机之间构建逻辑通信包括两个协议:TCP和UDP协议

TCP协议(Transmission Control Protocol,传输控制协议)

面向连接:通讯双方交换数据之前必须建立连接可靠的:多种确保可靠性的机制字节流服务:8bit(1Byte)为最小单位构成的字节流

TCP协议(报文段格式)

 

源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。首部长度——占 4 bit,它指出 TCP 首部共有多少个4字节,首部长度可以在20~60字节之间。因此,这个字段值可以在5(5X4=20)至15(15X5=60)之间。保留字段——占 6 bit,保留为今后使用,但目前应置为 0。紧急比特 URG —— 当 URG=1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。确认比特 ACK —— 只有当 ACK=1 时确认号字段才有效。当 ACK=0 时,确认号无效。推送比特 PSH (PuSH) —— 接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。复位比特 RST (ReSeT) —— 当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。同步比特 SYN —— 同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。终止比特 FIN (FINal) —— 用来释放一个连接。当FIN=1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口字段  —— 占  2  字节。窗口字段用来控制对方发送的数据量,单位为字节。 TCP  连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。紧急指针字段 —— 占 16 bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。选项字段 —— 长度可变。TCP 只规定了一种选项,即最大报文段长度 MSS(Maximum Segment Size)。MSS 告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。填充字段 —— 这是为了使整个首部长度是 4 字节的整数倍。

点击可直接跳转:TCP协议中的三次握手和四次挥手

UDP协议(User Dategram Protocol,用户数据报协议)

1、UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。

2、虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点

发送数据之前不需要建立连接UDP的主机不需要维持复杂的连接状态表UDP用户数据只有8个字节的首部开销网络出现的拥塞不会使源主机的发送速率降低,这对某些实时应用(如IP电话、视频会议)是很重要的。

3、UDP报文段头部信息分析:

用Wireshark抓取的头部信息如下:

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有