TCP/IP协议族

TCP/IP协议族,在网络中TCP/IP协议族是用的最多的协议族,现在互联网上也都是基于该协议族,它的另一个名字叫Internet协议族。这里我对TCP/IP协议进行综合的总结下。


1.概述


先说下TCP/IP的整体,TCP/IP的协议族中分为四个层次,如下图所示。后面的总结也是逐层向上来说的。


其中应用层和运输层是端到端的协议,(可以理解为进程端口到另一个进程端口的协议),而网络层是逐跳协议,它提供的是点到点的服务。这个先提一下,后面再回头来详细说明。


1.1 网络传输过程

网络之间传输的无非就是0101的信号流,也可以说是比特流。在这些0101的基础上面一层层地进行封装,构成了整个协议族。如下图所示的是以太网数据包的封装过程例子,主机A从应用程序的数据通过运输层封装了TCP首部(组成TCP报文段),到网络层又封装了IP首部(组成IP数据报),到链路层又封装了以太网首部(组成以太网帧),这样就构成了一个以太网帧(一段比特流),这个以太网帧通过我们的网络介质传输到达另一台主机B上,主机B拿到的是一个以太网帧,所以B也要遵循A封装时的各个协议,才能将这个帧也一层层解包成所需要的用户数据。这就是网络传输的简单过程。


通过上面的描述的过程或许会有疑惑,既然都是比特流,不干脆直接把用户数据发到另一台主机上不是更干脆,何必还要封装这么多层,多麻烦呀。

这里要说的是,在各层上的这些协议,各自的功能不同,需要结合他们一起工作,才能保证在复杂的网络环境中各数据被安全正确的送达:

1、链路层的协议就是要负责数据流在各个不同的网络环境中能正确传输,如主流的以太网,令牌网等。

2、网络层是负责数据流在网络节点之间的传输(主机、路由器等)

3、传输层就是负责主机端到端的正确传输(已经到进程)

4、应用层就是我们平时写的程序了,程序用调用的是socket APITCP/UDP的实现)

各层采用不同的协议,一起完成整个网络传输,如下图所示。


2.链路层


链路层是以帧作为传输包,链路层主要有三个作用:

1、发送接收IP数据报

2、发送接收ARP请求和应答

3、发送接收RARP请求和应答


2.1 两种帧格式

在链路层最常使用的有两种帧格式:以太网帧、IEEE 802

两种帧格式的对比如下图所示。他们都采用48bit6字节)的目的地址和源地址(也有16bit的),也就是常说的MAC物理地址。尾部的CRC字段则用于检验和。

以太网的帧和802标准的帧都有最小长度要求,因为802格式用了更多的字节来标识处理其他问题,所以802.3数据部分至少38字节,而以太网至少46字节。这个帧格式大概知道即可,更多的细节就不过多说明。



2.2 环回接口

环回接口允许同一台主机上的程序之间进行TCP/IP通信,在通信中基本都会遇到环回接口。

大多数是把IP地址127.0.0.1分配给这个接口,命名为localhost。大多数的传输实现中,给环回地址的数据包还是经过传输层和网络层,但不经过链路层,离开网络层后又返回给自己。

可以把环回接口看做是网络层下面的另一个链路层。


2.3 MTU

每个网络环境不一样,所以不同的网络帧格式对长度的限制不同,这个数据帧的最大传输单元叫MTU。下图是常见的几种MTU


IP层传输的数据报比MTU还要大的时候,就需要

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值