默认
打赏 发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
《TCP/IP详解》学习笔记(二):数据链路层
阅读(72520) | 评论(3 收藏3 淘帖1 1
微信扫一扫关注! 数据链路层有三个目的:

  • 为IP模块发送和 接收IP数据报。
  • 为ARP模块发送ARP请求和接收ARP应答。
  • 为RARP发送RARP请 求和接收RARP应答

ip大家都听说过。至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦)

数据链路层的协议还是很多的,有我们最常用的以太网(就是平时我们用的网卡)协议,也有不太常见的令牌环,还有FDDI,当然,还有国内现在相当普及的PPP协议(就是adsl宽带),以及一个loopback协议。

联系linux里面的ifconfig -a命令,这个命令通常会得到如下的结果:

《TCP/IP详解》学习笔记(二):数据链路层_QQ20160319-0.png

其中,eth0就是以太网接口,而 lo 则是 loopback 接口。这也说明这个主机在网络链路层上至少支持 loopback 协议和以太网协议。

以太网(Ether-net)的定是指数字设备公司( Digital Equipment Corp.)、英特尔公司(Intel Corp.)和 Xerox 公司在1982年联合公 布的一个标准,这个标准里面使用了一种称作 CSMA/CD 的接入方法。而 IEEE802提供的标准集 802.3(还有一部分定义到了802.2中) 也提供了一个 CSMA/CD 的标准。

这两个标准稍有同,TCP/IP 协议对这种情况的处理方式如下:

  • 以太网的 IP 数据报封装在 RFC894中定义,而 IEEE802网络的 IP 数据报封装在 RFC1042中定义。
  • 一台主机一定要能发送和接收 RFC894定义的数据报。
  • 一台主机可以接收 RFC894和 RFC1042的封装格式的混合数据报。
  • 一台主机也许能够发送 RFC1042数据报。。如果主机能同时发送两种类型的分组数 据,那么发送的分组必须是可以设置的,而且默认条件下必须是 RFC 894分组。

可见,RFC1042在 TCP/IP 里面处于一个配角的地位。这两种不同的数据报格式请参考教材。

ppp(点对点协议)是从 SLIP 的替代品。他们都提供了一种低速接入的解决方案。而每一种数据链路层协议,都有一个 MTU(最大传输单元)定义, 在这个定义下面,如果 IP 数据报过大,则要进行分片(fragmentation),使得每片都小于 MTU,注意 PPP 的 MTU 并 不是一个物理定义,而是 指一个逻辑定义(个人认为就是用程序控制)。

可以用 netstat 来打印出 MTU 的结果,比如键入 netstat -in:

《TCP/IP详解》学习笔记(二):数据链路层_QQ20160319-1.png
就可以观察到 eth0的 MTU 是1500。而 lo(环回接口)的 MTU 则是16436。

最后说说那个环回接口(loopback)。平时我们用127.0.0.1来尝试自己的机器服务器好使不好使。走的就是这个 loopback 接口。

对于环回接口,有如下三点值得注意:

  • 传给环回地址(一般是127.0.0.1)的任何数据均作为 I P 输入。
  • 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是 因为广播传送和多播传送的定义包含主 机本身。
  • 任何传给该主机 IP 地址的数据均送到环回接口。

这一章还是很简单的,一般作为了解知识也就足够了,没必要抠的那么详细。

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:TCPIP详解
上一篇:《TCP/IP详解》学习笔记(一):基本概念下一篇:《TCP/IP详解》学习笔记(三):IP协议、ARP协议

本帖已收录至以下技术专辑

推荐方案
评论 3
额 简单吗 我觉得这章比第一章抽象多了啊。。。。
学习了,谢谢!
感觉对PPP、SLIP还是不太理解,还是需要搜集资料然后了解一下这两个协议的具体应用场景吧
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部