图文详解TCP/IP协议

来源:互联网 发布:手机淘宝怎么修改评价 编辑:程序博客网 时间:2024/06/03 16:49
  • TCP/IP 协议:在通常情况下只是指利用IP进行通信时所必须用到的协议族的统称。并不是单独指TCP协议和IP协议。具体来说,IP、TCP、UDP、FTP、Http等都属于TCP/IP的协议。
    这里写图片描述
  • OSI( Open System Interconnect 开放系统互联模型)参考模型与TCP/IP的关系(左图是OSI参考模型,右图是TCP/IP分层模型)
    这里写图片描述
    • OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上应该开发哪种程序”。
    • 物理层:TCP/IP最底层是负责数据传输的硬件。这种硬件就相当于以太网或电话线等物理层的设备;
    • 数据链路层(网络接口层):利用以太网中的数据链路层进行通信,因此属于接口层。也就是说,把它当做驱动程序也无妨,驱动程序是操作系统和硬件之间起桥梁作用的软件。
    • 网络层(互联网层):互联网层使用IP协议,它相当于OSI模型中的第三层网络层。IP协议基于IP地址转发分包数据。
    • 传输层:TCP/IP的传输层具有两个代表性的协议。TCP和UDP,其中TCP具有可靠性。
    • 应用层(会话层以上的分层):TCP/IP的分层中,将OSI参考模型中的会话层、表示层、应用层的功能都集中到了应用程序中实现。
  • 通信示例:应用层到物理媒介为止数据处理的流程。
    这里写图片描述
    • 利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。
    • 我们用 HTTP 举例来说明,首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个 Web 页面的 HTTP 请求。
    • 接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
    • 在网络层(IP 协议),增加作为通信目的地的MAC地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。
    • 接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP请求。
    • 数据包首部:数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上层传递过来的数据。在每一个分层中都会对所发的数据附加一个首部,首部包含了该层必要的信息,如发送的目标地址以及协议相关的信息。
      这里写图片描述
    • 在客户端经过分层时自动加上首部信息,在服务端会解析后会将首部信息去除。简化为:
      这里写图片描述
      上面的图片展示了数据流向以及数据在各层之间的传递过程,但是具体的传输细节,以及每层的职责也是需要我们重点学习的。
  • 应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、NFS、HTTP。
    • FTP(File Transfer Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。
    • SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转,使用端口25。
    • NFS(Network File System)是网络文件系统,用于网络中不同主机间的文件共享。
    • HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于实现互联网中的WWW服务,使用端口80。
  • 传输层:提供应用程序间的通信,功能包括:一、格式化信息流;二、提供可靠传输。
    • 重要协议有TCP和UDP
  • 网络层:负责相邻计算机之间的通信。其功能包括三方面。
    • a,处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
    • b,处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
    • c,处理路径、流控、拥塞等问题。
    • IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层。IP数据报是无连接服务。
  • 数据链路层:众所周知,计算机以0,1来表示信息,然而实际的通信媒介之间处理的确是电压的高低,光的闪灭以及电波的强弱等信号。把这些信号与二进制0、1的转换正是物理层的责任。
  • 下期预告:图解Http协议
  • 【参考资料】
  • 1,图解TCP/IP
  • 2,图解Http
  • 3,百度百科
  • 以上资料如有需要请留言,本人可提供书籍电子版,请勿作商业用途,概不承担法律责任!