TCP/IP详解卷1:协议

一、概述

TCPIP协议族中不同层次的协议.png

TCP/IP四层协议的下三层都是在内核中处理的。路由器可连接两个不同的网络,如以太网和令牌环网相连。网桥在链路层上互连。ARP与RARP是链路层的协议。ICMP和IGMP报文都被封装在IP数据报中,但它们与IP在同一层(是IP的附属协议)。


数据进入协议栈时的封装过程.png

许多应用程序都可以使用 TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16bit的端口号来表示不同的应用程序(存放在报文头部,不像IP报文头及以以太网报文头用8bit的协议域区分)。在Linux下vim /etc/services可查看各服务端口号。RFC(Request for Comment)。

二、链路层

IEEE 802.2802.3(RFC 1042)和以太网的封装格式(RFC 894).png

其中长度指后续数据的字节长度,但不包括 CRC检验码。帧前还有8字节的前导
而在 802帧格式中,目的服务访问点( Destination Service Access Point,
DSAP)和源服务访问点(Source Service Access Point, SSAP)的值都设为0xaa。Ctrl字段(控制)的值设为3。随后的3个字节org code都置为0。CRC字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为FCS或帧检验
序列)。802.3标准定义的帧和以太网的帧都有最小长度要求。 802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充(pad)字节。
SLIP:串行线路IP,全称是Serial Line IP。它是一种在串行线路上对I P数据报进行封装的简单形式。
下面的规则描述了SLIP协议定义的帧格式:

  1. IP数据报以一个称作END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个 END字符(如果有线路噪声,那么END字符将结束这份错误的报文。这样当前的报文得以正确地传输,而前一个错误报文交给上层后,会发现其内容毫无意义而被丢弃)。
  2. 如果I P报文中某个字符为 END,那么就要连续传输两个字节 0xdb和0xdc来取代它。
    0xdb这个特殊字符被称作SLIP的ESC字符,但是它的值与ASCII码的ESC字符(0x1b)不同。
  3. 如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节 0xdb和0xdd来
    取代它。


    SLIP报文的封装.png

    PPP,点对点协议修改了SLIP协议中的所有缺陷。每一帧都以标志字符0x7e开始和结束。紧接着是一个地址字节,值始终是 0xff,然后是一
    个值为0x03的控制字节。


    PPP数据帧的格式.png

    环回接口
    大多数的产品都支持环回接口( Loopback Interface),以允许运行在同一台主机上的客户
    程序和服务器程序通过 TCP/IP进行通信。传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身

三、IP:网际协议

IP数据报格式.png

服务类型(TOS)字段包括一个3bit的优先权子字段(现在已被忽略),4bit的TOS子字
段和1bit未用位但必须置0。4bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最
小费用。4bit中只能置其中1bit。如果所有4 bit均为0,那么就意味着是一般服务。Telnet和Rlogin这两个交互应用要求最小的传输时延,因为人们主要用它们来传输少量的
交互数据。另一方面, FTP文件传输则要求有最大的吞吐量。最高可靠性被指明给网络管理
(SNMP)和路由选择协议。用户网络新闻( Usenet news, NNTP)是唯一要求最小费用的应
用。总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为 46字节,但是IP数据可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。首部检验和计算方法:https://www.cnblogs.com/cgc0415/p/6097282.html

四、ARP:地址解析协议

ARP高效运行的关键是由于每个主机上都有一个 ARP高速缓存。这个高速缓存存放了最近地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起,命令arp -a。


image.png

其中帧类型为0x0806。 硬件类型字段表示硬件地址的类型。它的值为 1即表示以太网地址。协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示IP地址。(硬件)和 (协议)用来描述ARP分组中的各个字段。例如,一个 ARP请求分组询问协议地址(这里是IP地址)对应的硬件地址(这里是以太网地址)。接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为 6和4。操作字段指出四种操作类型,它们是 ARP请求(值为1)、ARP应答(值2)、RARP请求(值为3)和RARP应答(值为4)。

五、RARP:逆地址解析协议

具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得IP地址。网络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的IP地址(在RARP应答中)。RARP请求或
应答的帧类型代码为0x8035,而且RARP请求的操作代码为3,应答操作代码为4。对应于ARP,RARP请求以广播方式传送,而RARP应答一般是单播传送的(可能有多个服务器,都会单播应答)。RARP服务器的复杂性在于,服务器一般要为多个主机(网络上所有的无盘系统)提供硬件地址到I P地址的映射。该映射包含在一个磁盘文件中(在Unix系统中一般位于/etc/ethers目中)。由于内核一般不读取和分析磁盘文件,因此RARP服务器的功能就由用户进程来提供,而不是作为内核的TCP/IP实现的一部分。

六、ICMP:Internet控制报文协议

ICMP报文是在I P数据报内部被传输的


image.png

image.png

类型字段可以有15个不同的值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件。在对ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文(如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去)。


image.png

ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码,无盘系统获取子网掩码的另一个方法是 BOOTP协议。
image.png

ICMP报文中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回。这样,发送端就可以把应答与请求进行匹配。

七、Ping程序

链接:https://pan.baidu.com/s/1WCXoLbvr6ORodbg1gJfInw

提取码:4s89

持续更新中……

分组交换、多路复用。时分复用(TDM)和静态复用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容