计算机网络学习(二) — TCP_IP模型分层

计算机网络学习(二) — TCP_IP模型分层

一、TCP/IP与OSI参考模型

TCP/IP与OSI参考模型
TCP/IP与OSI在分层模块上稍有区别,最主要的区别就是TCP/IP将OSI七层模型中的会话层表示层应用层全部整合为应用层进行处理。

1.1 物理层与数据链路层

物理层与数据链路层的实现是通过具体网卡与设备的驱动程序和网络接口进行实现的。

1.2 网络层

TCP/IP中的网络层包括IPARPICMP协议。

  • IP:IP是跨越网络传送数据包,使整个互联网都能收到数据的协议。IP协议使数据能够发送到地球的另一端,这期间它使用IP地址作为主机的标识。IP还隐含着数据链路层的功能。通过IP,相互通信的主机之间不论经过怎样的底层数据链路都能够实现通信。虽然IP也是分组交换的一种协议,但是它不具有重发机制。即使分组数据包未能到达对端主机也不会重发。因此,属于非可靠性传输协议

  • ICMP:IP数据包在发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送端发送一个发生异常的通知。ICMP就是为这一功能而制定的。它有时也被用来诊断网络的健康状况。

  • ARP:从分组数据包的IP地址中解析出物理地址(MAC地址)的一种协议。

1.3 传输层

传输层最主要的功能就是能够让应用程序之间实现通信。计算机内部,通常同一时间运行着多个程序。为此,必须分清是哪些程序与哪些程序在进行通信。识别这些应用程序的是端口号。

  • TCP:TCP是一种面向连接的传输层协议。它可以保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况。TCP协议中定义了各种各样复杂的规范,因此不利于视频会议(音频、视频的数据量既定)等场合使用。
  • UDP:UDP有别于TCP,它是一种面向无连接的传输层协议。UDP不会关注对端是否真的收到了传送过去的数据,如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。UDP常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。

1.4 应用层

TCP/IP的分层中,将OSI参考模型中的会话层、表示层和应用层的功能都集中到了应用程序中实现。这些功能有时由一个单一的程序实现,有时也可能会由多个程序实现。TCP/IP应用的架构绝大多数属于客户端/服务端模型(C/S模型)。提供服务的程序叫服务端,接受服务的程序叫客户端

浏览器与服务端之间通信所用的协议是HTTP(HyperText Transfer Protocol)。所传输数据的主要格式是HTML(HyperText Markup Language)。WWW中的HTTP属于OSI应用层的协议,而HTML属于表示层的协议。

发送电子邮件时用到的协议叫做SMTP(Simple Mail Tranfer Protocol)

文件传输是将保存在其他计算机硬盘上的文件转移到本地的硬盘上,或将本地硬盘的文件传送到其他机器硬盘上,使用的协议叫做FTP(File Transfer Prototol)。在FTP中进行文件传输时会建立两个TCP连接,分别是发出传输请求时所要用到的控制连接与实际传输数据时所要用到的数据连接。

远程登录是指登录到远程的计算机上,使那台计算机上的程序得以运行的一种功能。TCP/IP网络中远程登录常用TELNET(TELetypewriter NETwork)SSH(SSH是Secure SHell)两种协议。

在TCP/IP中进行网络管理时,采用SNMP(Simple Network Management Protocol)

二、TCP/IP通信过程

在TCP/IP的每个分层中都会对所发送的数据增加一个首部,该首部中包含该层的必要信息,比如发送的目的地址和相关协议等,通常,为协议提供的信息为包首部,要发送的内容为数据,从下一层看,上一层的收到的包被看作是本层的数据。

在这里插入图片描述

2.1 发送数据包

假设A对B通过TCP/IP发送一封邮件,内容为“早上好”。

2.1.1 应用层

启动应用程序新建邮件,将收件人邮箱填好,再由键盘输入邮件内容,点击“发送”按钮就可以开始TCP/IP的通信了。首先,应用层中会进行编码处理。比如UTF-8或者GB2312等字符编码。应用在发送邮件的那一刻建立TCP连接,从而利用这个TCP连接发送数据。它的过程首先是将应用的数据发送给下一层的TCP,再做实际的转发处理。

2.1.2 传输层

TCP根据应用的指示负责建立连接、发送数据以及断开连接。TCP提供将应用层发来的数据顺利发送至对端的可靠传输。TCP在应用层数据的前端附加一个TCP首部。TCP首部中包括源端口号目标端口号(用以识别发送主机跟接收主机上的应用)、序号(用以发送的包中哪部分是数据)以及校验和(Check Sum,用来检验数据的读取是否正常进行,以判断数据是否被损坏)。随后将附加了TCP首部的包再发送给网络层。

2.1.3 网络层

IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据,并在TCP首部的前端在加上自己的IP首部。IP首部中包含接收端IP地址以及发送端IP地址。紧随IP首部的还有用来判断其后面数据是TCP还是UDP的信息。IP包生成后,参考路由控制表决定接受此IP包的路由或主机。随后,IP包将被发送给连接这些路由器或主机网络接口的驱动程序,以实现真正发送数据。

如果尚不知道接收端的MAC地址,可以利用ARP(Address Resolution Protocol)查找。只要知道了对端的MAC地址,就可以将MAC地址和IP地址交给以太网的驱动程序,实现数据传输。

2.1.4 数据链路层与物理层

从IP传过来的IP包,对于以太网驱动来说不过就是数据。给这数据附加上以太网首部并进行发送处理。以太网首部中包含接收端MAC地址、发送端MAC地址以及标志以太网类型的以太网数据的协议。根据上述信息产生的以太网数据包将通过物理层传输给接收端。发送处理中的FCS(Frame Check Sequence) 由硬件计算,添加到包的最后。设置FCS的目的是为了判断数据包是否由于噪声而被破坏。

在这里插入图片描述

2.2 接收数据包

包的接收流程是发送流程的逆序过程。

2.2.1 数据链路层与物理层

主机收到以太网包以后,首先从以太网的包首部找到MAC地址判断是否为发给自己的包。如果不是发给自己的包则丢弃数据。而如果接收到了恰好是发给自己的包,就查找以太网包首部中的类型域从而确定以太网协议所传送过来的数据类型。如果以太网包首部的类型域包含了一个无法识别的协议类型,则丢弃数据。

2.1.2 网络层

IP模块收到IP包首部及后面的数据部分以后,也做类似的处理。如果判断得出包首部中的IP地址与自己的IP地址匹配,则可接收数据并从中查找上一层的协议。如果上一层是TCP就将IP包首部之后的部分传给TCP处理;如果是UDP则将IP包首部后面的部分传给UDP处理。对于有路由器的情况下,接收端地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送达的主机或路由器以后再转发数据。

2.1.3 传输层

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

数据接收完毕后,接收端则发送一个“确认回执”给发送端。如果这个回执信息未能达到发送端,那么发送端会认为接收端没有接收到数据而一直反复发送。

数据被完整地接收以后,会传给由端口号识别的应用程序。

2.1.4 应用层

接收端应用程序会直接接收发送端发送的数据。通过解析数据可以获知邮件的收件人地址是乙的地址。如果主机B上没有乙的邮件信箱,那么主机B返回给发送端一个“无此收件地址”的报错信息。若主机B上恰好有乙的收件箱,则主机B和收件人乙能够收到电子邮件的正文。邮件会被保存到本机的硬盘上。如果保存也能正常进行,那么接收端会返回一个“处理正常”的回执给发送端。反之,一旦出现磁盘满、邮件未能成功保存等问题,就会发送一个“处理异常”的回执给发送端。

由此,用户乙就可以利用主机B上的邮件客户端,接收并阅读由主机A上的用户甲所发送过来的电子邮件——“早上好”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值