ARP协议

ARP(Address Resolution Protocol)协议 地址解析协议

把网络层的IP地址翻译成在数据链路层寻址的48位硬件地址(MAC地址)

在OSI模型中ARP协议属于链路层;而在TCP/IP模型中,ARP协议属于网络层。

IP协议

IP数据包首部的固定部分中的字段含义

(1)版本。占4位,值IP协议的版本。通信双方使用的IP协议版本必须一致。目前版本号是4(IPv4)

(2)首部长度。占4位,单位是4字节,首部长度默认是20字节,所以填充的数字为0101

(3)区分服务。占8位,用来获得更好的服务,但实际上基本没使用过

(4)总长度。占16位,指首部和数据之和的长度,单位位字节。长度为16,数据包最大长度为(2的16次方-1),但是受数据链路层协议的影响总长度不能超过最大传送单位MTU为1500字节

(5)标识。占16位,当IP数据包长度超过MTU时候,进行分片,在每一个分片数据包使用相同的标识,用来接收方进行数据包重组

(6)标志。占3位,只有前两位有意义

最低位置MF(More Fragment),当MF=1时表示后面还有分片

中间位置DF(Don‘t Fragment),意思是不能分片,当DF=0时才允许分片

(8)生存时间。占8位,英文缩写TTL(Time To Live),表示数据包在网络中的寿命。目的是防止数据包无法到达目的地无限制的在互联网兜圈子,大量消耗网络资源。设置一定的初始值,每经过一个路由器减一,TTL=0时,路由器丢弃数据包

(9)协议。占8位,指出数据包使用的是哪种协议

(10)首部校验和。占16位,数据包每经过一个路由器,都要重新计算一下首部校验和,经过一系列运算,判断数据包的首部是否发生变化,如果发生变化就路由器丢弃数据包。

(11)源IP地址。占32位

(12)目的IP地址,占32位

ICMP协议

ICMP(Internet Control Message Protocol)网际报文控制协议

用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。大部分网络检修技巧和工具都是基于ICMP的(也就是ping)

简单点说,ICMP常用于寻找网络故障

运输层的两个主要协议:

(1)传输控制协议TCP(Transmission Control Protocol)

(2)用户数据包协议UDP(User Datagram Protocol)

区别:

(1)TCP提供面向连接的服务。文件分段,在传送数据前必须先建立会话,进行流量控制,保证可靠传输

(2)UDP传输之间不需要建立连接,不提供可靠交付,简单点说就是发送出去就不管了。适合一个数据包就能完成通信,或者对丢包了没必要重传的应用。

传输控制协议TCP(Transmission Control Protocol)

是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议

数据包结构:

(1)源端口和目的端口。各占2字节

(2)序号。占4字节,序号范围是(0,2的32次方-1),序号到达最大之后又回到0。在一个TCP连接中传送的字节流中每一个字节都按顺序编号。起始序号必须在连接时候设置。首部中的序号字段指本报文段所发送数据的第一个字节序号。例如,一报文段的序号字段值是301,携带的数据共有100字节。表明第一个字节序号是301,最后一个字节序号是400,下一段报文从401开始

(3)确认号。占4字节,是期望收到对方下一个报文段的第一个数据字节的序号。

(4)数据偏移。占4位,单位时4字节,记录TCP报文第多少位开始是数据部分

(5)保留。占6位,目前没有使用

(6)紧急URG。当URG=1时,表明紧急指针有效。告诉系统此报文有紧急数据,应尽快传送,并把数据包插入到本报文段数据的最前面,比如ctrl+c

(7)确认ACK。TCP规定,在连接建立之后所有传送的报文段都必须把ACK设置位1

(8)推送PSH。尽快发送

(9)复位RST。当RST=1时,表明TCP连接出现了严重差错(由于主机崩溃或者其他原因),必须释放连接,重新建立一个连接

(10)同步SYN。用在TCP建立连接时使用。

(11)终止FIN。用来释放一个TCP连接。

(12)窗口。占2字节,窗口值是(0,2的16次方-1),表明对方现在允许发送的数据量,而且在动态变化。

(13)校验和。

(14)紧急指针。占2字节,仅在URG=1时有效,指出本报文段的紧急数据的字节数。

(15)选项。长度可变,最长为40字节

TCP的连接建立-三次握手

SYN/ACK 标识号                seq 序号                      ack 确认号

TCP的连接释放-四次挥手

HTTP协议:(转载自公众号山丘安全攻防实验室 https://mp.weixin.qq.com/s/YhYIVuDDmAMgKSduin5OHQ

HTTP协议简介

HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。(暂不介绍HTTP2)

  • 协议

协议规定了通信双方必须遵循的数据传输格式,这样通信双方按照约定的格式才能准确的通信。

  • 无状态

无状态是指两次连接通信之间是没有任何关系的,每次都是一个新的连接,服务端不会记录前后的请求信息。

  • 客户端/服务端模型

五层网络模型

URL构成

用了这么久,你注意过吗?

协议内容

请求(Request)

客户端发送一个HTTP请求到服务端的格式:

  • 请求行
  • 请求头
  • 请求体

响应(Response)

服务端响应客户端格式:

  • 状态行
  • 响应头
  • 响应体

状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

更详细的状态码可查看 HTTP状态码

但一般我们只需要知道几个常见的就行,比如 200,400,401,403,404,500,502.

请求方法

截止到HTTP1.1共有下面几种方法:

请求和响应常见通用头

注意

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。

常见的媒体格式类型如下:

以application开头的媒体格式类型:

常见请求头

常见响应头

总结

这一点在前后端联调接口最明显,当你在应用中去请求其他接口或转发请求时这些也是要知道的。不然出现问题的概率会大大提高。

HTTP TCP UDP ICMP IP ARP 协议详解(10.15 第二十一天)的更多相关文章

  1. ARP协议详解之Gratuitous ARP(免费ARP)

    ARP协议详解之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP,无故ARP.Gratuitous ARP不同于一般 ...

  2. ARP协议详解之ARP动态与静态条目的生命周期

    ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q  每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...

  3. ARP协议详解RARP

    简单来说,ARP协议是IP地址转换成MAC地址的协议.链路层协议.过程如下: 1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系. 2:当源主机要 ...

  4. ARP协议详解

    ARP协议:地址解析协议,将IP地址映射到MAC地址. ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区.每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除.如果始终在使用 ...

  5. Tcp端口以及端口相关协议详解

    http://www.codeweblog.com/tcp%e5%b8%b8%e7%94%a8%e7%ab%af%e5%8f%a3/

  6. centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课

    centos  Linux系统日常管理2  tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...

  7. 【转载】TCP /IP协议详解

    首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...

  8. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

  9. TCP/IP协议详解---概述

        工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...

随机推荐

  1. 注意重写类的equals()方法

    注意在java中在比较引用类型时==和原生的equals()方法比较的都是看它们否是同一个对象(说的更直白一点就是他们在内存的位置是否是一样的),但我们在真实世界中关注的往往只是其中的某个属性是否相等 ...

  2. css常用设置

    距离左边和上边 style="margin-left:100px;margin-top:10px" 设置相对位置 position:absolute; position:relat ...

  3. 说说我对SQL语句执行顺序的理解,以SQL Server为例

    有人说SQL语句难学,其实并不难!只要掌握了基本的语句执行顺序,用程序化的思维分析结构,再难的问题也会迎刃而解! 假设有如下表emp 现在要求 列出员工姓名(ename)中不含A的所有人按照部门编号( ...

  4. 扩展新函数给window

    page.exposeFunction(name, puppeteerFunction) name <string> Name of the function on the window ...

  5. 十二 事务&安全问题&隔离级别

    事务 transaction,指一组操作,里面包含许多单一逻辑,只要一个逻辑没有执行成功,那么都算失败.所有的数据都回到最初的状态(回滚). 为什么要有事务? 确保逻辑的成功,例子:银行转账 事务针对 ...

  6. PE文件结构体-IMAGE_OPTIONAL_HEADER

    typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. // WORD Magic; // 标志字, ROM 映像(0107h), ...

  7. GoJS实例3

    复制如下内容保存到空白的.html文件中,用浏览器打开即可查看效果 <!DOCTYPE html> <html> <head> <meta charset=& ...

  8. BFPRT(中位数的中位数算法)

    BFPRT(中位数的中位数算法) 类似于快排,但是划分区间的策略不一样. 分组,组内排序: 取出每组的中位数组成一个数组,再取这个数组的中位数: 以取出的中位数作为partition的轴.

  9. Job for nginx.service failed because the control process exited with error code. See “systemctl stat

    启动nginx服务时如果遇到这个错误 Job for nginx.service failed because the control process exited with error code. ...

  10. 吴裕雄--天生自然java开发常用类库学习笔记:线程的生命周期

    class MyThread implements Runnable{ private boolean flag = true ; // 定义标志位 public void run(){ int i ...