计算机网络复习

思维导图(复习范围)

计算机网络

计算机网络体系结构

OSI七层结构概念非常清晰,理论比较完整,但是他不实用,也很复杂。
TCP/IP是一个四层的结构,一般应用广泛。
五层体系结构则是综合了这两个模型的优点,比较易懂,和四层的区别就是把网络接口层换成数据链路层和物理层。


三者区别

五层体系中应用层是通过两个应用之间的的通信交互来完成特定网络应用,协议有域名解析DNS,HTTP协议。
运输层是提供数据传输服务给两台主机,协议有tcp或者udp协议。
网络层是选择合适的网络路由和交换节点,把运输层的数据分组进行传输,协议有ip协议。
数据链路层是把数据封装成帧进行传输,物理层是比特流形式传输。

应用层协议

  • 基于TCP的应用层协议有:HTTP、FTP、SMTP、TELNET、SSH、pop3
  • 基于UDP的应用层协议:DNS、TFTP(简单文件传输协议)、SNMP:简单网络管理协议

TCP与UDP

TCP是可靠的,面向连接的传输服务,所以一般用于文件传输,远程登录等场景。UDP则相反,是不可靠的,尽力把数据传输过去,不考虑是否发错,无连接的服务。用于语音,视频,直播等场景。
TCP特点
1.是有连接的,每次通信都要通过三次握手来建立连接,四次挥手来释放链接。
2.全双工通信,双方都可以随时进行发送,两端都有缓存
3.是点对点的连接,只能一对一
4.可靠的传输,不会有丢失,错误,乱序。
UDP特点
1.无连接的
2.尽最大努力进行数据传输,不考虑发送是否正确
3.面向报文
4.没有拥塞控制,在网络拥塞的时候,不会使发送速率变低。
5.可以一对一也可以一对多。
6.UDP首部开销比TCP小,只有8个字节

三次握手与四次挥手

三次握手

TCP中建立连接是用三次握手的方式,这里的ack是确认号,ACK则是确认字段,两者不太一样。
一开始客户端主动打开连接,去向服务器端发送请求报文,此时服务器端收到请求报文后,就会跟客户端进行确认,表示自己已经收到了,那客户端收到后,就会进入ESTABLISHED状态(已经建立连接)。
但是这个时候为什么客户端会再发送一次呢,假设没有第三次的请求发送,那么就是客户端发出请求,服务器端确认并发送回复,这样子就建立连接了。假设有一种情况,当客户端发送的请求因为请求报文丢失而没有收到服务器端的确认,那么就会重新发送一次请求连接报文,这个时候服务器收到并发送确认。如果客户端第一次发送的请求因为网络问题,延迟到很久之后才发送到服务器端,那么服务器端就会误以为这是一个新的连接,就会表示已经收到,发送确认报文。可实际上这个时候客户端并没有发送请求连接,那么就不会去管服务器的确认报文,服务器则一直在等着客户端发送数据,造成资源浪费。所以才要采用三次握手,让客户端再次发送一次确认报文给服务器端。


四次挥手

连接释放的过程是客户端先向服务器端发送信息,服务器端收到后会立马返回确认信息,但是这个时候服务器端可能还有数据要进行发送,所以服务器端要等到发送完全部数据后再发送释放连接的信息,客户端收到这个信息后,立马进行确认,同时要等待一段时间再关闭,如图的计时等待,最后服务器端收到确认信息并关闭。
为什么要等待一段时间再关闭呢,这是因为如果客户端确认的报文丢失了,那么服务器端收不到就会进行重新发送,这个时候要是客户端立马关闭就收不到了,所以要等一段时间才可以关闭。同样要是出现延迟很长时间才发送到的情况,客户端也已经关闭了,就不会去理睬。

拥塞控制

在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。

先介绍一下基本概念,cwnd是发送方维护的一个根据网络动态变化的窗口,ssthresh是一个阈值,
慢开始:一开始不太清楚网络的实际情况,不能一窝蜂的把数据全部塞进去,要先试探一下,即从小到大慢慢增大cwnd,初始值为1,经过一个RTT(传输轮次),cwnd就会翻倍,这个时候如果cwnd大于ssthresh的话,那么就会转变成拥塞避免算法。

拥塞避免:让cwnd缓慢增大,即每个RTT让cwnd+1。避免增长过快然后导致网络拥塞。
如果在慢开始或者拥塞避免阶段发生了网络出现拥塞,那么ssthresh就会变为此时的发送窗口的一半(不能小于2),并且cwnd会从1重新开始。

快重传与快恢复:如果接收方收到的数据没有按序传输过来,就马上发送重复确认(让发送方马上知道有数据没有按序传输),如果发送方收到三个重复的确认,那么就会立即重传没收到的数据
此时ssthresh会减半,并且发送方认为这个时候很有可能不会网络阻塞,那么就不用cwnd从1开始,而是初始值为减半后的ssthresh,然后执行拥塞避免算法慢慢增大。


拥塞控制

Tcp如何保证可靠传输

1.Tcp会给发送的数据包进行编号,接收方进行排序,把有序数据传送给应用层。
2.校验和,tcp会保持首部和数据的校验和,是一个端到端的校验和,如果在发送过程中校验和出现了任何变化,那么接收方就会丢弃这个报文段,并不确认收到此报文段。
3.拥塞控制:当网络拥塞时,减少数据的传输量
4.Tcp的接收端会丢弃重复数据。
5.流量控制:Tcp两个端都有固定大小的缓冲区域,如果接收方来不及处理发送方的数据,就会提醒发送方降低速率,不要发送过多数据导致数据丢失。用的是滑动窗口来实现流量控制。
6.ARQ协议(停止与等待ARQ协议,连续ARQ协议)
7.超时重传:当tcp发送方发出一个报文段之后,就启动一个计时器,如果在这个时间内没有得到接收端发回来的确认,就重新发送。

http与https

  • 两者用的是不同的连接形式,http默认端口号是80,https默认端口号是443.
  • https需要ca申请证书,一般很少免费证书,需要一定费用
  • http传输的内容都是明文,客户端和服务器无法验证对方身份。https是运行在SSL/TLS之上的http协议。https传输的内容经过加密了,加密采用对称加密,因为传输速度快,但对称加密的密钥用服务器方的证书进行了非对称加密,因为较难破解。http的安全性没有https高,同样https比http耗费更多的服务器资源。

对称加密:密钥只有⼀个,加密解密为同⼀个密码,且加解密速度快,典型的对称加密
算法有DES、AES等;
非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),
加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称
加密速度比较慢,典型的非对称加密算法有RSA、DSA等。

http格式结构

分为请求头,请求行,请求体,也有空行在请求头和请求体中间


http请求消息结构

请求行有请求方法(get,post等),URL字段,还有http协议版本
请求头有关键字和值组成。常见的有Host:请求的主机名,User-Agent:产生请求的浏览器类型,Accept:客户端可识别的内容类型列表。

http1.0 1.1 2.0

版本 特性
http1.0 默认使用短连接的方式(一次请求就建立一个tcp连接,请求完断开),也可以设置keep-alive来换成长连接,如果一个网页有多个图像资源,那么就会申请多个tcp连接,就会浪费资源 。支持get,post,head请求
http1.1 默认使用长连接的方式(一个tcp连接可以多次请求,在一定时间内保持连接)也可以设置成短连接。新增了五种请求类型。请求头部增加了host字段,请求消息和响应消息都支持host头域,如果没传还会返回一个错误状态码。新增了多个状态码
http2.0 多路复用(一个tcp连接可以处理多个请求),同时以前是基于文本解析,现在基于二进制解析,错误更少,更高效了。对header压缩,数据更少,传输速度快

网络状态码

状态码 意思
1xx (信息性状态码) 接收的请求正在处理
2xx (成功状态码) 请求正常处理完毕
3xx (重定向状态码) 需要进行附加操作以完成请求
4xx (客户端错误状态码) 客户端无法处理请求
5xx (服务器错误状态码) 服务器处理请求出错

get和post的区别

  • get花费一个tcp数据包,post花费两个tcp数据包,速度get会快一点。
  • get会把请求参数放到url上,post则是放到请求体中,这样子get就不安全,同时url长度有限制,所以get传输数据比较小
  • get可以被当做书签被浏览器缓存,post不可以

WebSocket

WebSocket是应用层的协议,他是全双工通信,同时在连接上与http的短连接不同,用的是长连接。一旦连接上了,就直接在建立的一个tcp上发送多次请求,不用重复连接。

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

推荐阅读更多精彩内容