1、TCP协议族这个大家庭,每个协议在OSI5层模型中所处的位子

  

  其中,网络层里的 ICMP = Internet Control Message Protocol,即因特网控制报文协议,

          IGMP = Internet Group Manage Protocol,即因特网组管理协议,

          IP = Internet Protocol,就是因特网协议的意思,

     链路层的 ARP = Address Resolution Protocol,是地址解析协议,下文会有详细描述。

         RARP = Reverse Address Resolution Protocol,是反向地址转换协议,

2、IP协议

  IP协议的讲解,我放到另一篇讲UDP协议的内容里去讲,这里就不讲了。估计是这周星期六写。

3、ARP协议(地址解析协议)

  作用:先看右图中的源IP地址,它的长度是32bit,

      再看右图中的源MAC地址,它的长度是48bit,

      ARP协议的作用就是,在32bit的IP地址和48bit的MAC地址间建立起映射关系。类似于“看到A,就想到B”这种句子。

  分为:ARP协议分为ARP请求和ARP应答,如右图 

      为了方便记忆和理解,可以将图2和图3进行对比,发现图3的“以太网首部”跟图2里的“以太网帧头”部分长得有点像。

      “帧类型”:长度为2个字节=16位,指的是后边数据的类型,但是对于ARP请求、ARP应答来说,这个字段的内容固定写为0x0806,

             0x0806而换成2进制就是0000 1000 0000 0110。

      “硬件类型”:长度为2个字节=16位,表示硬件地址类型,而对于以太网地址的话,该字段为1,所以我估计是0000 0000 0000 0001。

      “协议类型”:长度也是2个字节=16位,表示协议地址类型,如果它等于0x0800,那么它就代表的是IP地址。

                那如果要表示MAC地址,该等于多少呢?

      “硬件地址长度”:占1个字节,内容固定等于6,表示MAC地址的长度是6个字节=48位,所以我猜这个字段的二进制表示为0110。

      “协议地址长度”:占1个字节,内容固定等于4,表示IP地址的长度是4个字节=32位,所以我猜这个字段的二进制表示为0100。

      “op”:占2个字节,叫做操作字段,当op=1=(我猜)0000 0000 0000 0001,表示这是ARP请求。

                      当op=2=(我猜)0000 0000 0000 0010,表示这是ARP应答。

      接下来的20个字节:20=6+4+6+4,是一组地址信息,看图3就懂。

4、ICMP(因特网控制报文协议)

    ICMP用于传递错误报文或与路由器、主机交换关键信息。ICMP报文封装在IP数据报文内部,紧接IP首部之后,谈到格式,就把图1粘贴到这里,

    上文说,ICMP报文封装在IP数据报文内部,紧接IP首部之后,看看图1,左边的上面花括号就是IP首部,那么ICMP报文就卸载“IP数据”里面。

  格式:

    “类型”:占1个字节=9位,0代表回显应答,简称应答,8代表回显请求,简称请求。

     “代码”:占2个字节,不论是请求还是应答,这个地方都写0。

     “校验和”:2个字节=16位,我猜指的是整个ICMP报文进行加和吧。图4整个这一块,叫做1个ICMP报文。

     “标识符”:占2个字节=16位,一般设置为进程的ID号,以区分同一主机的多个PING实例。

     “序号”:占2个字节=16位,从0开始,每个回显请求,都自动+1,而PING程序就是通过分析应答报文的序号,来判断是否出现了丢包、乱序和重复。

5、TCP协议

  客户端:发出“连接请求”,

  服务端:监听和“被动接受请求”,给出应答,

  格式:    

    源、目的端口号:各占2个字节=16bit,它们用于区分不同的进程。通过双方的端口号和IP地址可以唯一确定一条TCP连接。

            我猜比如QQ这个进程占用1号端口,微信占用2号端口。

    TCP序号:占32bit=4个字节,它是TCP提供可靠字节流服务的基础。TCP序号标识每个TCP数据报文的首个字节,配合TCP数据报文长度可以定位TCP报文段内的任意

        一个字节。当前的TCP报文长度确定后,下一个待发送TCP报文序号可由此算出,当序号增加到溢出时将再次从头开始。

  今天先写到这儿了,上床去了。2019年11月19日23:35:17

[TCP] TCP协议族的学习 and TCP协议的更多相关文章

  1. [转] 用协议分析工具学习TCP/IP

    一.前言 目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天.目前号称搞网的 ...

  2. 重识TCP/IP协议族与HTTP基础

    不忘初心 砥砺前行, Tomorrow Is Another Day ! 本文概要: TCP/IP协议族的网络分层 TCP三次握手四次挥手 Http简介 报文结构 Http的请求方法及状态码 常用的H ...

  3. <TCP/IP原理> (二) OSI模型和TCP/IP协议族

    1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...

  4. 第12章 网络基础(1)_网络分层和TCP/IP协议族

    1. 协议的概念 (1)计算机网络中实现通信必须有一些约定.如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被称为通信协议 (2)在两个节点之间要成功地进行通信,两个节点之间必须 ...

  5. OSI模型与TCP/IP协议族

    OSI模型与TCP/IP协议族 年之后,TCP/IP协议族逐渐成为占主导的商用体系结构,广泛应用于Internet中,并通过广泛的測试.而OSI模型从来没有被全然实现过. 一.OSI模型: OSI与I ...

  6. 网络基础之TCP/IP协议族

    一.TCP/IP协议族 1.什么是协议? 计算机与网络设备相互通信依赖于相同的方法,比如,双方通信基于何种语言等.而把通信所依赖的这一切方法统称为规则,而我们就把这种规则称为协议. 协议中存在各种各样 ...

  7. TCP/IP(八)之总结TCP/IP四层模型

    阅读目录(Content) 一.TCP/IP参考模型概述 1.1.TCP/IP参考模型的层次结构 二.TCP/IP四层功能概述 2.1.主机到网络层 2.2.网络互连层 2.3.传输层 2.3.应用层 ...

  8. 8.3 TCPIP协议族

    接下来我们要学习的内容是TCP/IP协议族.TCP/IP协议族在网络系统中是非常重要的.这一个协议族当中牵涉到许许多多的我们平常所用到的协议.TCP/IP呢它也有分层模型.然后我们讲到的就是三方面的内 ...

  9. Android网络编程系列 一 TCP/IP协议族

    在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...

随机推荐

  1. [Luogu3932] 浮游大陆的68号岛

    题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg 浮游大陆的68号岛,位于浮游大陆的边境地带.平时很少有人造访. 岛上被浓厚的森林覆盖. ...

  2. [CODEVS1537] 血色先锋队 - BFS

    题目描述 Description 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重 ...

  3. 利用WinRM实现内网无文件攻击反弹shell

    利用WinRM实现内网无文件攻击反弹shell 原文转自:https://www.freebuf.com/column/212749.html 前言 WinRM是Windows Remote Mana ...

  4. .NET Core 3.0 里新的JSON API

    为什么需要新的JSON API? JSON.NET 大家都用过,老版本的ASP.NET Core也依赖于JSON.NET. 然而这个依赖就会引起一些版本问题:例如ASP.NET Core某个版本需要使 ...

  5. Dropzone.js

    2015-11-25 发布 DropzoneJS 官网没有中文版的,很多东西只能跟着自己的感觉去理解,有些地方把握不了是否准确,在网上搜了一下中文版,看到一位大神简易的中文版 个人觉得和原官网对比着看 ...

  6. 函数基础(二)(day11整理)

    目录 昨日内容 函数的定义 函数的三种定义方式 空函数 有参函数 无参函数 函数的调用 函数的返回值 函数的参数 形参 实参 今日内容 可变长参数 可变长形参 可变长实参(仅作了解) 函数对象 函数嵌 ...

  7. Java基础(十八)集合(5)Queue集合

    队列是只能在尾部添加元素,同时只能在头部删除元素的数据结构.队列的原则就是“先进先出”. Queue接口是Collection接口的最后一个子接口. Queue接口是队列接口,而Deque接口是Que ...

  8. Java8系列 (四) 静态方法和默认方法

    静态方法和默认方法 我们可以在 Comparator 接口的源码中, 看到大量类似下面这样的方法声明 //default关键字修饰的默认方法 default Comparator<T> t ...

  9. transform-origin盒子旋转位置

    transform-Origin属性允许您更改转换元素的位置. 2D转换元素可以改变元素的X和Y轴. 3D转换元素,还可以更改元素的Z轴. 为了更好地理解Transform-Origin属性,请查看这 ...

  10. OC-音乐播放器-锁屏处理

    QQ音乐播放的过程中,锁屏状态下的效果如下: 也就是说,QQ音乐播放过程中,添加锁屏远程事件的监听. 本文只记录本人知道的小知识点,不提供完整的代码. 实现的原理: (1)获取锁屏歌曲信息中心:MPN ...