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. 新闻网大数据实时分析可视化系统项目——6、HBase分布式集群部署与设计

    HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群. HBase 是Google Bigtable 的开源实现,与 ...

  2. SpringBoot Date类型插入数据库始终比正确时间早一天问题解决办法

    bug描述 昨天的Date插入不进去问题解决后,一直没发现其实插入的时间一直比正确的时间早一天 输出sql语句,发现insert语句还是对的,不知道为什么插入数据库之后结果就早了一天 https:// ...

  3. Verilog的非阻塞语句放到顺序块中,综合出来怎样的逻辑电路?

    情境: FPGA里面计数器需要复位(计数值置零),与计数器状态有关的行为是状态机控制的,即状态机为CLEAR_TIMER状态时,计数器才完成清零动作. 清零有两个条件:(1)计数器值溢出(达到OVF门 ...

  4. clientDataSet转换sql

    ReadMe 新版本delphi,可以用string类型,旧版本需要用widestring =========================================== function T ...

  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:插入符

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. Windows和linux命令行快捷键

    Powershell的快捷键和cmd,linux中的shell,都比较像. ALT+F7 清除命令的历史记录 PgUp PgDn 显示当前会话的第一个命令和最后一个命令 Enter 执行当前命令 En ...

  7. LInux的服务器编码格式的查看与更改

    1.locale 命令查看字符编码 然后修改/etc/sysconfig/i18n,如改成中文编码: LANG=en_US.UTF-8 改为 LANG="zh_CN.GBK" 然后 ...

  8. Ubuntu安装Orcale

    Linux_Ubuntu安装oracle总结 ---------转自 https://www.2cto.com/database/201305/215338.html 话说我花了一晚上才在ubuntu ...

  9. (转)CentOS/Debian/Ubuntu系统 TCP-BBR 一键安装脚本

    本脚本适用环境 系统支持:CentOS 6+,Debian 7+,Ubuntu 12+ 虚拟技术:OpenVZ 以外的(KVM.Xen.VMware等) 内存要求:≥128M 日期 :2017 年 0 ...

  10. java虚拟机开篇01

    一直以来对java 基础设施都啥都不知道啊,感觉有时候挺费力,挺吃劲的. 一下是一些很好的参考资料: http://blog.csdn.net/bingduanlbd/article/details/ ...