TCP/IP协议族

TCP/IP协议族体系结构以及主要协议

TCP/IP协议族是目前internet使用的主流协议族,它是一个分层、多协议的通信体系。下面主要介绍一下 TCP/IP协议族各层的功能以及包含主要的主要协议,以及它们协助完成网络通信的具体过程。

数据链路层

数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。
常用的两个协议是
1.APR协议(地址解析协议),用于IP地址转换为MAC地址,通常网络层使用IP地址来寻址一台机器,而数据链路层使用物理地址(MAC)来寻址一台机器,所以ARP协议能够使网络层的IP地址转为MAC地址,才能使用数据链路层提供的服务。
2.RARP协议(逆地址解析协议),用于MAC地址转为IP地址,用于通过MAC地址来寻找自身的IP地址(使用较少)。

网络层

网络层实现数据包的选路和转发,用于确定两台主机之间的通信路径。
常用的两个协议是:
1.IP协议(因特网协议):IP协议根据数据包的目的IP地址来决定如何发送。如果不能直接发送给目的主机,则选择路由器进行转发。
2.ICMP(因特网控制报文协议):用于检测网络的连接。

传输层

传输层为两台主机上的应用程序提供端到端的通信。
常用的协议是:
1.TCP协议:为应用层提供可靠的,面向连接的,基于流的协议。
(基于流的意思是,当用户发送数据时,先放在TCP缓冲区,当真正发送数据的时候,会有很多数据一起发送给另一台主机。因此可能发生粘包的现象,即很多数据混在一起,无法区分。避免的方法有,采用固定大小的数据长度;数据分为消息头和信息体,消息体里面放数据长度;每个数据都有结束标志
2.UDP协议为应用层提供不可靠的,面向无连接的,基于数据包,无连接的协议,通信双方不能保存长久的联系,因此用户每次发送数据都需要指明对端的地址。但是它发送快速,使用于实时性强的网络,比如视频,电话会议等等,支持多播,广播,而TCP只支持一对一

应用层

应用层负责处理应用程序的逻辑。它处于用户空间,负责文件传输、网络管理等。而数据链路层、网络层、传输层都是处于内核空间的,必须既稳定又高效。
常用的协议:
1.DNS(域名解析协议),用于将域名解析为IP地址
2.HTTP(超文本传输协议),用于客户端和服务端进行通信
3.HTTPS(加密超文本传输协议),通信内容进行加密传输,使用对称加密和非对称加密相结合,对称加密是指用于建立连接阶段,双方有相同的密钥;非对称加密用于传输数据阶段,双方各自有公钥和私钥。

封装

**上层协议通过封装使用下层协议提供的内容。**应用程序在发送数据之前,会沿着协议栈从上到下依次传递。每层协议都将在上层协议的数据上加入本层的头部信息,以实现该层的功能,这个过程即为封装。
1.经过TCP封装后的数据称为TCP报文段,包括TCP头部信息和TCP内核缓冲区。
经过UDP封装后的数据成为UDP数据报,无需为应用层数据保存副本。
2.经过IP封装后的数据成为IP数据报,IP数据报也分为IP头部和数据两部分。数据部分即为TCP报文段。
3.经过数据链路层封装后的数据成为帧,帧的最大传输单元(MTU),即帧最多能携带多少上层协议数据,通常会受限。过长的IP数据报可能会分片传输。

分用

当帧到达目的主机时,会沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并将最后获取的信息传给目标主机,这个过程称为分用,分用依靠头部信息中的类型字段实现的。

由于IP、ARP等协议都使用帧传输数据,所以帧的头部需要提供字段来区分。以太网帧使用两个字节的类型字段来区分;

因为ICMP、TCP、UDP协议都使用IP协议,所以IP数据报头部采用16位的协议字段区分。

TCP和UDP则通过头部的6位端口号来区分上层应用程序。

ARP协议工作原理

ARP协议能实现任IP地址到任意MAC地址的转换。其原理是:主机向自己所在的网络广播一个ARP请求,该请求中包含目标主机的IP地址,此网络上的所有主机都要收到这个请求,但只有被查找的目的地址会回应ARP应答,包含自己的物理地址。
ARP请求维护一个高速缓存,包含经常访问的IP地址到MAC地址的转换。这样会提高发送数据包的速度。

SOCKET和TCP/IP协议族关系

操作系统使用socket这一套API,使得用于能够访问处于内核空间的数据链路层、网络层、传输层的协议提供的服务
socket定义的API实现的功能如下:
1.将用户发送的数据用户缓冲区复制到TCP/UDP内核发送缓冲区,使得内核去发送数据;或者从内核缓冲区复制到用户缓冲区,用于读取数据。
2.用户可以通过它们来修改各层协议的头部信息和数据结构等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值