HTTP TCP UDP ICMP IP ARP 协议详解(10.15 第二十一天)
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 第二十一天)的更多相关文章
- ARP协议详解之Gratuitous ARP(免费ARP)
ARP协议详解之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP,无故ARP.Gratuitous ARP不同于一般 ...
- ARP协议详解之ARP动态与静态条目的生命周期
ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q 每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...
- ARP协议详解RARP
简单来说,ARP协议是IP地址转换成MAC地址的协议.链路层协议.过程如下: 1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系. 2:当源主机要 ...
- ARP协议详解
ARP协议:地址解析协议,将IP地址映射到MAC地址. ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区.每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除.如果始终在使用 ...
- Tcp端口以及端口相关协议详解
http://www.codeweblog.com/tcp%e5%b8%b8%e7%94%a8%e7%ab%af%e5%8f%a3/
- 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网络知识 第十五节课 ...
- 【转载】TCP /IP协议详解
首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...
- TCP /IP协议详解【转】
转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...
- TCP/IP协议详解---概述
工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...
随机推荐
- 第1节 kafka消息队列:1、kafka基本介绍以及与传统消息队列的对比
1. Kafka介绍 l Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开发的一个开源消息系统项目. l Kafka最初是由LinkedIn开发,并于20 ...
- 【随缘更(gu)】牛客D4简要思路(没有题解)
T1 当然不能枚举每个区间,于是我们考虑算贡献. 对于每个位置i,我们计算其作为区间内第一个出现ai的位置的区间总数,则有ans=sigma( i - last[i] ) * ( n - i + 1 ...
- Redis集合类型
集合是元素无序且唯一的列表 命令 增加元素 SADD key member [member ...] > SADD letters a (integer) 1 > SADD letters ...
- Docker 镜像文件的导入和导出
使用save命令 保存镜像 docker save -o name_by_you.tar exist_images 将文件copy到另一台机器 使用load命令将镜像文件保存到本地仓库 docker ...
- mysql 三表索引优化
建表语句 CREATE TABLE IF NOT EXISTS `phone`( `phoneid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `card` ...
- 怎样快速高效的定义Django的序列化器
1.使用Serializer方法自己创建一个序列化器 先写一个简单的例子 class BookInfoSerializer(serializers.Serializer): ""& ...
- Kubernetes 各版本镜像列表
以下镜像列表由 kubeadm v1.11.1 导出,若使用预下载镜像离线部署的方式部署,请使用 kubeadm v1.11.1 版本 导出各版本镜像列表: kubeadm config images ...
- POJ 3348:Cows 凸包+多边形面积
Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7739 Accepted: 3507 Description ...
- element设置headers添加token
<template> <div> <el-upload action="http://localhost:3000/picture&qu ...
- vue 【 子子组件 => 子组件 => 父组件 】 的事件和参数的传递
1,子子组件 TodoItem.vue <template> <div class="todo-item" :class="{'is-co ...