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协议的更多相关文章
-
[转] 用协议分析工具学习TCP/IP
一.前言 目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天.目前号称搞网的 ...
-
重识TCP/IP协议族与HTTP基础
不忘初心 砥砺前行, Tomorrow Is Another Day ! 本文概要: TCP/IP协议族的网络分层 TCP三次握手四次挥手 Http简介 报文结构 Http的请求方法及状态码 常用的H ...
-
<;TCP/IP原理>; (二) OSI模型和TCP/IP协议族
1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...
-
第12章 网络基础(1)_网络分层和TCP/IP协议族
1. 协议的概念 (1)计算机网络中实现通信必须有一些约定.如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被称为通信协议 (2)在两个节点之间要成功地进行通信,两个节点之间必须 ...
-
OSI模型与TCP/IP协议族
OSI模型与TCP/IP协议族 年之后,TCP/IP协议族逐渐成为占主导的商用体系结构,广泛应用于Internet中,并通过广泛的測试.而OSI模型从来没有被全然实现过. 一.OSI模型: OSI与I ...
-
网络基础之TCP/IP协议族
一.TCP/IP协议族 1.什么是协议? 计算机与网络设备相互通信依赖于相同的方法,比如,双方通信基于何种语言等.而把通信所依赖的这一切方法统称为规则,而我们就把这种规则称为协议. 协议中存在各种各样 ...
-
TCP/IP(八)之总结TCP/IP四层模型
阅读目录(Content) 一.TCP/IP参考模型概述 1.1.TCP/IP参考模型的层次结构 二.TCP/IP四层功能概述 2.1.主机到网络层 2.2.网络互连层 2.3.传输层 2.3.应用层 ...
-
8.3 TCPIP协议族
接下来我们要学习的内容是TCP/IP协议族.TCP/IP协议族在网络系统中是非常重要的.这一个协议族当中牵涉到许许多多的我们平常所用到的协议.TCP/IP呢它也有分层模型.然后我们讲到的就是三方面的内 ...
-
Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
随机推荐
-
MineCraft note
客户端:http://pan.baidu.com/s/1hqgS8sshttp://pan.baidu.com/s/1mgmkduC 材质包:R3D小地图MODCraftGuide mod 内置合成表 ...
-
使用PHP编写发红包程序
使用PHP编写发红包程序 http://www.jb51.net/article/69815.htm 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-07-22 微信发红 ...
-
xml是什么?
xml Extensible Markup Language 可扩展标记语言 它被设计用来传输和存储数据. 它的内容都是由标签组成,非常有规律.
-
Java 测试Hibernate+Mysql简单的数据存储
想使用Hibernate框架,在网上看了一个Hibernate学习视频,试着做了一个小小的Java连接数据库的操作,Java初学者一个,大家多多包涵 开发环境: 1.安装MySql, 2.安装了Ecl ...
-
3.关于QT中的MainWindow窗口,MenuBar,ToolBar,QuickTip等方面的知识点
1 新建一个空Qt项目 编写12MainWindow.pro HEADERS += \ MyMainWindow.h \ MyView.h SOURCES += \ MyMainWindow.c ...
-
使用axios post 提交数据,后台获取不到
https://www.cnblogs.com/yiyi17/p/9409249.html(copy https://www.cnblogs.com/loveyaxin/p/8385694.html( ...
-
Strust2框架笔记01_XML配置_action编写
目录 1.Struts2概述 1.1 什么是Struts2 1.2 Web层框架基于前端控制器模型设计 2. Struts2入门案例 2.1 Struts2的开发环境 2.2 解压开发包 2.3 创建 ...
-
Java 容器的使用及数组、List、Set 的相互转换
0. Utils 字符串数组的排序: Set<String> set = new TreeSet<String>(); Collections.addAll(set, args ...
-
给本地服务器配置py文件的下载功能
打开以下网址 http://localhost/Myservers/test/weibo.py //本地服务器,下载Myservers目录下的test目录中的weibo.py文件 错误提示: HTTP ...
-
liferay6.1.2的API
http://docs.liferay.com/portal/6.1/javadocs/overview-summary.html