TCP/IP协议详解 卷1—读书笔记(1)
0. 前言
本系列简要记录该书的关键点,用以梳理知识点。
1. 简介
简述链路层下的一些相关协议,如以太网IP数据报,802标准,SLIP,CSLIP,PPP。
链路层主要为上层(IP)和本层(ARP和RARP)的协议提供服务。
2. 以太网IP数据报和IEEE 802
以太网IP数据报协议是由Intel和其他公司发布的一个标准,采用CSMA/CD的接入方法。其速率为10Mb/s,地址为48bit。在RFC 894中定义。
IEEE 802发布的一个标准和以太网IP数据报有些不同,前两个地址字段相同,之后两个字节不一样。但是可以通过这两个字节来区分。其如下所示(图为百度百科的):
从这里可以看出,这两种报文可以通过802.3标准的长度字段和RFC 894的类型字段区分开(因为有效长度<=1500 < 2^11=2048=0x0800)

3. SLIP:串行线路IP(Serial Line IP)
SLIP是一种在串行线路上对IP数据报进行简单封装的协议。
协议定义:
1)IP数据报以END(0xc0)的特殊字符结束。(多数实现会在开头也添加一个END)
2)如果IP数据报中包含END,则以0xdb 0xdc来代替。其中0xdb称为SLIP的ESC字符。
3)如果IP数据报中包含ESC,则使用0xdb 0xdd来替代。
协议的缺陷:
1)每一段必须知道对方的IP地址。(因为没有类似以太网IP数据报中的地址字段信息)
2)数据帧中没有类型字段。在一条线路中使用则不能使用其他协议(没有协议字段,没法和其它协议区分)
3)没有校验和
4. 压缩SLIP
对报文的IP和TCP(或其他协议)首部信息进行压缩到3或5个字节。在RFC 1144中定义。
5. PPP:点对点协议
PPP协议修改的SLIP的一些缺陷。RFC 1548描述报文封装方法和链路控制协议。RFC 1332描述针对IP的网络控制协议。
协议的格式如下:
每一帧均以0x7e开始和结束。之后是一字节的地址,然后是一字节0x03的控制字节。
协议字段:0x0021表示IP数据报,0xc021表示链路控制数据,0x8021表示网络控制数据。
FCS是帧校验序列,用以检测数据传输过程产生的错误。

对比与SLIP
1)PPP协议在一条线路上可以使用多种协议,而不仅仅是IP协议。
2)有校验码,可以检测传输产生的错误。
3)通信双方可以进行IP地址的动态协商(通过IP网络控制协议)
4)可以协商是否采用报文头部压缩。
5)链路控制协议可以分别对多个数据链路选项进行设置。
TCP/IP协议详解 卷1—读书笔记(1)的更多相关文章
- 【转】TCP/IP协议详解 卷1
https://www.cnblogs.com/mengwang024/p/4425834.html
- TCP/IP协议详解概述
TCP/IP协议详解卷1--第一章概述--读书笔记 作者:vpoet 日期:2015/06/25 注:本系列的文章只是作者对TCP/IP协议的理解,难免会出现纰漏或者不完整,当然也有可能很肤浅,希望大 ...
- TCP/IP协议详解---概述
工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...
- 【转载】TCP /IP协议详解
首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...
- TCP /IP协议详解【转】
转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...
- 003 TCP/IP协议详解(二)
一.ping ping可以说是ICMP的最著名的应用,是TCP/IP协议的一部分.利用"ping"命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障. 例如:当我们某一 ...
- TCP/IP协议详解内容总结
TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为 ...
- tcp/ip协议详解
1. 概念介绍 互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构.它常被通称为 TCP/IP 协议族(英语:TCP/I ...
- TCP/IP协议详解内容总结(怒喷一口老血)
TCP/IP协议(本文源自外部链接) TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络 ...
随机推荐
- flex布局无法自动适应的bug以及实现textarea根据内容自适应
-webkit-box布局无法自动适应高度的bug css3的新属性display:-webkit-box带来了前端开发自动适应布局的春天 ,但是我发现这个布局有个问题, 而且这个问题我无法解决: 描 ...
- Javascript写俄罗斯方块游戏
俄罗斯方块这个游戏也做了移动端的兼容, 这个游戏难点是怎么翻转方块, 自己实现的方式是把方块放到一个二维数组, 然后逆时针旋转二维数组. 也有别的方法,比如直接用一个全局变量代表一个方向, 翻转的时候 ...
- REST服务返回自定义的HttpResponseMessage
WebApi框架中对资源的操作,都是通过其Controller提供的各种方法(GET,POST,PUT,DELET等)来实现,而这些方法的返回信息有以下几种形式: 方法返回类型 HttpRespons ...
- Cygwin使用方法
对于 UNIX 本身,也有各种称呼.IBM® 大型机用户说各种带字母 “z” 的行话,比如 IBM z/OS® 和 System z9 Virtual Machine (z/VM):嵌套系统开发人员使 ...
- JS 打印功能代码可实现打印预览、打印设置等
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- Sublime Text 3配置C++编译运行
2016.9.8更新: linux(Ubuntu16.04)下的配置,编译后用终端运行,解决了不能输入的问题 { "encoding": "utf-8", &q ...
- css-a与a:link的一些认识
1.a元素有四种状态: a:link {color:blue;}//未点击的链接状态 a:visited {color:blue;}//已点击的连接状态 a:hover {color:red;}//鼠 ...
- Leetcode #28. Implement strStr()
Brute Force算法,时间复杂度 O(mn) def strStr(haystack, needle): m = len(haystack) n = len(needle) if n == 0: ...
- eclipse安装插件的方法(简单、ERMaster插件安装)
ERMaster插件:https://sourceforge.net/projects/ermaster/ 链接:http://pan.baidu.com/s/1o7UWLMa 密码:wkax 可以编 ...
- Jenkins的FTP上传插件Publish Over FTP Plugin设置支持中文路径
[系统管理]->[系统设置]->[Publish over FTP]->[Control encoding]->输入[GB2312]或者[UTF-8]