网络分层

OSI模型(共七层)

1.物理层 2.数据链路层 3.网络层 4.运输层 5.会话层 6.表示层 7.应用层

TCP/IP协议模型

1.网络接口层(Network Access) 2.网际层(Internet)3.运输层(Transport)4.应用层(Application)

应用层   FTP,HTTP,SMTP,DNS,DHCP    报文,用户数据

运输层   TCP,UDP  段

网络层  IP,ARP,ICMP  包

数据链路层  CSMA/CD, PPP 帧

物理层       比特流


物理层通信模型

局域网模型:

PC——(网线,数字信号)——集线器/交换机——(网线,数字信号)——PC

广域网通信模型

PC——(网线,数字信号)——调制解调器——(电话线,模拟信号)——调制解调器——(网线,数字信号)——PC

PC——(网线,数字信号)——光电转换器——(光信号,光纤)——光电转换器——(网线,数字信号)——PC


数据链路层

Ethernet V2协议,使用CSMA/CD技术,(同轴电缆,集线器)

以太网帧的格式:

首部:源MAC(6字节)+目标MAC(6字节)+网络类型(2字节,IPV4还是IPV6)

以太网帧:首部+数据+FCS(4字节)

数据的长度46-1500字节

整个以太网帧的长度是64-1518字节

PPP协议(点对点协议)


网络层

网络层数据包由首部(至少20个字节,包含版本,首部长度,区分服务,总长度,标识,标志,片偏移,生存时间,协议,首部检验和,源IP地址,目标IP地址,可选字段(最多40个字节))+数据2部分组成

由于帧的数据不能超过1500字节,过大的IP数据包,需要分成片传输给数据链路层

每一片都有自己的网络层首部


传输层

TCP:面向连接,可靠传输,首部占用空间大(至少20个字节,最多60个字节),传输速率慢,资源消耗大,应用场景:浏览器,文件传输,邮件发送,对应的应用层协议:HTTP,HTTPS,FTP,SMTP,DNS

首部:源端口+目的端口+序号+确认号+数据偏移+保留+标志位+窗口+检验和+紧急指针+选项(长度可变)+填充

标志位

URG=1时,紧急指针字段才有效,表明前多少位的是紧急数据,应当尽快传输

ACK=1时,确认号才有效

PSH(push)

RST=1时,表明连接中出现问题,需要重连

SYN=1,ACK=0时,表明这是一个建立链接的请求

SYN=1,ACK=1时,服务器回复客户端可以建立连接

FIN=1时,表明数据已经发送完毕,要求释放连接

序号seq4 字节:建立连接后,序号代表这一次给对方的TCP数据部分的第一个字节的编号

确认号ack 4字节:建立连接后,期望下一次传过来的数据部分的第一个字节的编号


可靠传输:ARQ停止等待自动重传请求,连续ARQ+滑动窗口协议,SACK选择性确认


流量控制(点对点):通过确认报文中的窗口字段来控制发送方的发送速率

当窗口为0时,开始定时器询问最新窗口


拥塞控制:避免网路中的路由器或链路过载,涉及到所有的主机和路由器

发送窗口=min(拥塞窗口,接收窗口)

慢开始(慢启动):cwnd的初始值比较小,然后随着数据包被接收方确认(收到一个ACK),cwnd就成倍增长

拥塞避免:ssthresh:慢开始阈值,cwnd达到阈值后,以线性方式增加,丢包后网络可能出现拥塞,阈值乘法减小同时cwnd执行慢开始算法(老版本)

快速重传:

接收方:每收到一个失序的分组后就立即发出重复确认

发送方:只要连续收到三个重复确认(总共4个相同的确认),就应当立即重传对方尚未收到的报文段

快速恢复

当发送方连续三个重复确认后,执行乘法减小,把ssthres减半,cwnd不恢复初始值,直接开始执行拥塞避免算法


连接管理:3次握手,4次挥手

第一次握手:SYN=1,ACK=0 ,客户端的序号初始值

第二次握手:SYN=1,ACK=1,服务器的序号初始值

第三次握手:SYN=0,ACK=1

第一次挥手:主机1发出FIN报文,表示主机1已经没有数据要发送了,但是此时主机1还是可以接收来自主机2的的数据

第二次挥手:主机2返回ACK报文,表示主机2已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的

第三次挥手:主机2发送FIN报文,表示主机2已经没有数据要发送了

第四次挥手:主机1返回ACK报文,表示主机1已经知道主机2没有数据发送了,随后(一般为2倍的MSL,MSL建议为2分钟)正式断开整个TCP连接


UDP:无连接,不可靠传输,首部占用空间小(8个字节,源端口,目标端口,长度,检验和),传输速率快,资源消耗小,应用场景:音视频通话,直播,对应的应用层协议:DNS


应用层:

HTTP:

ABNF语言规定

请求行

request-line = method SP request-target SP HTTP-version CRLF

例:GET /hello/ HTTP/1.1

请求头:

head-field = field-name ":" OWS field-value OWS

User-Agent:浏览器身份标识字符串

Host:服务器的域名,端口号

Date:发送的时间

Referer:前一个链接

Content-Type:请求体的类型,application/x-www-form-urlencoded(表单提交),multipart/form-data(文件上传)

Content-Length:请求体的长度

Accept:能够接受的响应内容类型,text/plain

Accept-Charset:能够接受的字符集,utf-8

Accept-Encoding:能够接受的编码方式列表

Accept-Language:能够接受的响应内容的自然语言列表en-US

Range:仅请求某个实体的一部分,断点续传

Origin:发起一个针对跨域资源共享的请求

Cookie:之前通过服务器Set-Cookie发送的Cookie

Connection:该浏览器想要优先使用的链接类型

Cache-Control:用来指定在这次的请求/响应链中的所有缓存机制都必须遵守的指令

message-body = *OCTET


status-line = HTTP-version SP status-code SP reason-phrase CRLF

例:HTTP/1.1 200 或者 HTTP/1.1 200 OK

响应头

Date

Last-Modified

Server

Expires

Content-Type:text/html; charset=utf-8

Content-Encoding

Content-Length

Content-Disposition:一个可以让客户端下载文件并建议文件名的头部

Accept-Ranges:服务器支持哪些种类的部分内容范围:bytes

Content-Range:这部分消息是属于完整消息的哪部分

Range

Origin:跨域

Cookie:

Connection

Cache-Control

Accept

Accept-Charset

Accept-Encoding

Accept-Language

响应体

请求方法:

GET:常见于读取操作,参数直接拼接在URL的后面(URL长度有限制)

POST:常用于添加,修改,删除,请求参数放在请求体里面

HEAD:请求得到与GET请求相同的响应,但没有响应体,使用场景:在下载一个大文件前,先获取其大小,再决定是否下载

OPTIONS:获取服务器支持哪些方法

PUT:用于对存在的资源进行覆盖

PATCH:用于对资源进行部分修改,资源不存在会创建

DELETE:用于删除指定的资源

TRACE:环回测试,主要用于HTTP请求的测试或诊断


状态码分为5类:

信息响应:100-199

成功响应:200-299

重定向:300-399

客户端错误:400-499

服务器错误:500-500

常见状态码:

100:Continue,继续发送剩余请求

200:OK 成功

302:Found 请求的资源被暂时的移动到了由Location头部指定的URL上,重定向

304:Not Modified 可以使用缓存的内容

400:Bad Request 语法无效

401:缺乏目标资源要求的身份验证凭证

403:拒绝授权访问

404:无法找到请求资源

405:服务器禁止了使用当前HTTP方法的请求

406:服务器无法提供与Accept-Charset以及Accept-Language指定的值相匹配的响应

408:服务器想要将没有在使用的连接关闭

500:服务器出问题了

501:请求的方法不被服务器支持

503:服务器停机维护或超载

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容