TCP/IP详解(协议)笔记2——链路层
来源:互联网 发布:知柏地黄丸补肾吗 编辑:程序博客网 时间:2024/06/09 17:09
1、链路层的三个作用
(1)为IP模块发送和接收IP数据;
(2)为ARP模块发送ARP请求和接收ARP应答;
(3)为RARP模块发送RARP请求和接收RARP应答;
这里我们主要介绍以太网链路层协议、两个串行接口链路层协议(SLIP和PPP)和环回(loopback)驱动程序。
2、以太网协议
以太网是一个标准,它是当今TCP/IP采用的主要的局域网技术。它采用CSMA/CD(带冲突检测的载波侦听多路接入)技术。主机需求RFC要求每台Internet
主机都与一个10Mb/s的以太网电缆相连接:
(1)必须能发送和接收采用RFC894(以太网)封装格式的分组;
(2)应该能接收与RFC 894混合的RFC 1042(IEEE 802)封装格式的分组;
(3)也许能够发送采用RFC 1042格式封装的分组;
可见最长用的封装格式是RFC 894定义的格式。这两种帧格式都采用6个字节的目的地址和源地址,这个地址就是我们一般所说的硬件地址。ARP(地址解析协议)和RARP(逆地址解析协议)对4个字节的IP地址和6个字节的硬件地址进行映射。这两种帧的最后面还有4个字节的CRC(循环冗余检验)。
3、SLIP(串行线路IP)与压缩的SLIP
的某些字段一般不会发生变化。SLIP适用于RS-232串行端口和高速调制解调器接入Internet。
SLIP帧格式描述:
(1)IP数据报以END(0xc0)的特殊字符结束,同时现在大多数的数据报在开始处也传一个END字符,用于正确传输。
(2)如果IP报文中某个字符为END,那么就要连续传输两个字节0xdb和0xdc来取代它,0xdb被称作SLIP的ESC字符。
(3)当IP报文中某个字符为SLIP的ESC字符时,就要连续传输两个字符0xdb和0xdd来取代它。
SLIP的一些缺陷:
(1)每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端。
(2)数据帧中没有类型字段,如果一条串行线路用于SLIP,那么它不能同时使用其他协议。
(2)SLIP没有在数据帧中加入检验和,因此错误只能通过上层协议来发现。
CSLIP(压缩SLIP):
CSLIP能把20个字节的IP首部和20个字节的TCP首部压缩到3或5个字节,它能在CSLIP的每一端维持多达16个TCP连接,并且知道其中每个连接的首部中
4、点对点协议(PPP)
点对点协议修改了SLIP协议中所有的缺陷,PPP相对于SLIP具有以下优点:
(1)PPP支持在单根串行线路上运行多种协议,不只是IP协议;
(2)每一帧都有循环冗余检验;
(3)通信双方可以进行IP地址的动态协商(使用IP网络控制协议);
(4)与CSLIP相似,对TCP和IP报文首部进行压缩;
(5)链路控制协议可以对多个数据链路选项进行设置;
5 、环回接口
分配给这个端口,并命名为localhost,一个传给环回接口的IP数据报不能在任何网络上出现。环回接口处理IP数据报示意图如图1所示:环回接口允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。根据惯例,大多数系统把IP地址127.0.0.1(127.开头的IP地址都可以)
图1 环回接口IP数据报处理
这里有几个关键点说明一下:
(1)传给环回地址的任何数据均作为IP输入;
(2)传给广播地址或多播地址的数据复制一份传给环回接口,然后送到以太网上;
(3)任何传送给该主机IP地址的数据均送回环回接口;
6 、最大传输单元MTU与路径MTU
最大传输单元MTU:
以太网和802.3对数据帧的长度都有一个限制,其最大值分别为1500和1492字节,链路层的这个特性称为MTU。以以太网为例:MTU指的是封装的数据的
长度,不包括目的地址、源地址和类型这6+6+2=14个字节的内容,也不包括CSC。
路径MTU:
当两台主机之间的通信要通过多个网络时,那么每个网络的链路层就可能有不同的MTU,此时重要的不是两台主机所在的MTU值,而是两台通信主机路
径中的最小MTU,它被称为路径MTU。
- TCP/IP详解(协议)笔记2——链路层
- TCP/IP详解(协议)笔记3——IP协议
- TCP/IP详解学习笔记——IP协议
- TCP/IP协议详解笔记(2链路层)
- TCP/IP详解(协议)笔记1——概述
- TCP/IP详解(协议)笔记——ARP和RARP
- tcp ip协议笔记(2)——链路层
- 《TCP/IP详解 卷1:协议》学习笔记———TCP:传输控制协议
- TCP/IP详解学习笔记(2)--IP协议
- TCP-IP协议详解学习笔记-- IP
- TCP/IP协议详解笔记——ARP协议和RARP协议
- TCP/IP协议详解笔记——ARP协议和RARP协议
- TCP/IP详解——笔记2
- 《TCP/IP详解-协议》(2)链路层
- tcp/ip协议学习笔记(2)链路层
- TCP/IP协议详解——邮差与邮局(2)
- 第二章-链路层-TCP/IP协议详解笔记
- TCP/IP学习笔记(3)-----------TCP/IP协议详解
- mycelipse 10.7 破解失败的原因,我遇到的一个
- Andorid屏幕适配
- android 截图保存位置不在已选择的“SD卡”中
- 有哪些你觉得能借助学习以自我提升的网站推荐?
- 哈夫曼树 C语言实现
- TCP/IP详解(协议)笔记2——链路层
- ksuapc : ORA-1033 foreground process starts before PMON
- 一元四次方程求解C++实现
- 排序算法---归并排序 (java)
- 软件架构————如何写好变量(2)
- java跨平台的理解
- 读书记之《C Primer Plus》
- 强连通分量 算法摘记
- 为什么 IDEA 自带的 equals & hashCode generate 不好