计算机网络

作者: 六横六竖亚 | 来源:发表于2020-02-08 18:15 被阅读0次

TCP/IP协议

概述  https://www.jianshu.com/p/b4250ba3ef12

分层模型:TCP/IP协议的网络模型分为应用层,传输层,网络层,链路层。还包括UDP(简单通信,可靠性低)、DHCP(动态主机配置)。TCP主要负责应用与网络的通信,将数据分割装包并在到达时重组;IP负责计算机间的通信,传送数据包。

OSI七层模型和TCP/IP协议模型

应用层  https://www.jianshu.com/p/4731888c3af1

应用层的常用协议,SSL加密,HTTP三个版本的进化

1、主要内容是定义不同主机上应用的通信规则,主要有超文本传输协议HTTP(传递HTML图片等文件)、文件传送协议FTP(两个TCP,控制连接和数据连接)、域名解析协议DNS(将域名转化为IP地址)、邮件相关协议(SMTP,POP,IMAP)等。

2、SSL:主要应用于浏览器和网站服务器之间通信的加密,认证网站服务器身份,防止中间人攻击。它不是独立的应用层协议,而是修改现有的协议使之更安全,相当于附加层。如HTTPS。

4、SSH:远程登录会话安全协议,完全替代TELNET和FTP的应用层协议。

3、非对称加密:公钥公开,私钥保密;请求方获取公钥加密数据,接收方使用私钥解密数据-RSA算法

传输层  https://www.jianshu.com/p/0a8f59d7eb6f

UDP,TCP(三次握手,四次挥手,确认应答与重发机制),窗口控制和滑动,拥塞机制(慢启动过程)

UDP:无连接传输,即时性高,简单不可靠,面向报文不分组,提供一对多、多对多,通过首部的校验和判断是否损坏。

TCP:1、面向连接,只支持1对1,序列号和确认应答机制来保证TCP的可靠性(序列号保证数据的顺序,确认应答保证服务端收到了数据),支持丢包重发和顺序控制。

2、三次握手(客户端请求连接SYNx→服务端确认应答ACKx+1+请求连接SYNy→客户端确认应答ACKy+1),如果服务端收不到客户端的确认应答就不建立传输连接,第三次握手避免了服务器资源的浪费,也防止因延迟而失效的连接请求到达服务器后产生错误。PS:建立连接期间可以确定最大消息长度(MSS)。

3、四次挥手(客户端请求断开FIN→服务端确认应答ACK→服务端请求断开FIN→客户端确认应答ACK)。

服务端的确认应答和请求断开为什么需要分开两次传输?服务端收到断开请求时,由于有必要的数据要处理不能立刻断开,要经过CLOSE-WAIT阶段准备好后才能发送FIN释放连接。

为什么客户端在TIME-WAIT阶段(发出ACK后)要等2MSL(最大报文生存时间)才CLOSE?如果2MSL内再次收到了服务器的请求断开FIN,说明服务器没有收到客户端的应答ACK,则需要重发并重新计时。

4、窗口滑动:窗口指的是无需等待确认应答可以发送的最大数据量,大大提升了性能。窗口控制需要使用大量缓存区。

发送方:被告知后设置自己发送窗口的窗口大小,如果连续3次收到同一段数据的确认应答(下一个是2001),则会对对应的数据进行重发(比超时更为快速的重发机制)。若确认应答之前的数据都已发送完成,则窗口滑动。

接受方:确认应答ACK报文中会告知接受窗口的窗口大小(即进行流量控制),按序到达的数据会发送确认应答(下一个是2001),其他数据缓存起来。

5、拥塞控制:首先1、启动“慢开始机制”,窗口大小设置成1个报文长度,每收到一个ACK拥塞窗口大小翻倍,指数级增长很快出现确认包超时(发生拥塞);此时2、启动“拥塞避免机制”设置慢开始阈值为当前拥塞窗口大小的一半,把当前窗口设置成1重新启动慢开始,当达到这个阈值时开始线性增加;当收到三次相同的确认应答时说明又拥塞了,启动3、“快重发机制”,直接重发(而非等待超时提高重发效率),并启动4、“快恢复机制”,即再次把阈值设置成当前窗口大小的一半,当前窗口也减半,继续线性增加,直到下一次收到三次确认应答启动快重发。

流量控制和拥塞控制:流量控制对应窗口滑动,接收方告知窗口大小,避免数据来不及接收,造成数据丢失;拥塞控制由发送方控制,通过慢开始+拥塞避免和快重传+快恢复检测网络状况而确定发送窗口大小, 避免过多数据导致路由器或链路过载。

网络层  https://www.jianshu.com/p/7c1bea892d78

IP协议(IPv4,IPv6,地址分类,子网掩码),ARP协议,路由协议,IP分片和再构,路径MTU发现,DNS域名解析系统

1、网络层主要是实现终端节点间的通信(即点对点通信),IP协议是其核心协议

2、

数据链路层  https://www.jianshu.com/p/44b3e34534fe

MAC地址,以太网,交换机

HTTP

基础  https://www.runoob.com/http/http-tutorial.html

报文  http://tools.jb51.net/table/http_header

https://www.cnblogs.com/lauhp/p/8979393.html

请求行、请求头、请求数据(Post),响应头,状态码,Content-Type对照表等

HTTP1.0,1.1和2.0  https://www.cnblogs.com/heluan/p/8620312.html

https://www.jianshu.com/p/7bfec28236c3

1.1新增:长连接(默认开启,减少消耗和延迟);节约带宽(先只发header,服务器100后再发body);Host域;优化缓存策略(增加If-None-Match等缓存头);新增错误码

2.0优化:多路复用(并发处理多个请求,1.1需要建立多个TCP连接);头部数据压缩(HPACK算法);服务器推送(评估请求增量推送更多资源,浏览器本地加载不再请求)

Cookie和Session  https://www.cnblogs.com/8023-CHD/p/11067141.html

Cookie:由服务端颁发,储存在客户端;过期时间;特点(方便JS读取用户相关信息);禁用Cookie(URL带参)

Session:浏览器首次请求时服务端生成Session和SessionId储存在服务器上,并颁发Cookie给浏览器,以便下次处理带Cookie的请求;

区别:存放、安全性、数据量(Cookie4KB)、过期时间

HTTP与HTTPS的区别  https://blog.csdn.net/xiaoming100001/article/details/81109617

http协议以明文的方式在网站服务器和web浏览器之间传递信息,https加入ssl协议,依靠证书来验证服务器身份并为通信加密。

https工作原理:客户端发起请求连接服务器的443端口→服务器把证书(公钥)传给客户端→客户端解析证书(机构和过期时间等,若发现异常会出现浏览器不信任该服务器等提示)→客户端用公钥加密随机值(生成会话密钥)传送给服务端→服务端用私钥解密 / 服务端发送用私钥加密后的信息→客户端用之前生成的私钥解密获取解密后的内容

默认端口不同:http80,https443;握手阶段https比较费时;配置证书需要一定成本。

Get和Post请求

语法上实际并无大区别,诸如请求参数长度限制、请求参数放在url中还是body中(安全性的微小区别)、缓存cache,以及post会发两个TCP数据包这微不足道的时间消耗(可验证数据包的完整性)这些区别其实是浏览器的实现支持不同,是冲应用层http协议的层面去理解。但如果从tcp传输层,它们真正的区别应从语义上理解:get偏获取,post偏处理(增删改)

iOS中的Socket编程 https://www.jianshu.com/p/dc74df1ce57b

常见问题

HTTP的结构是怎样的?

简述发送一个HTTP请求的过程。

简介 TCP 和 UDP 区别,他们位于哪一层?

路由器和交换机的工作原理大概是什么,他们分别用到什么协议,位于哪一层?

描述TCP协议三次握手,四次挥手的过程。

TCP 协议是如何进行流量控制,拥塞控制的?

为什么建立连接时是三次握手,两次行不行?如果第三次握手失败了怎么处理?

第三次握手避免了服务器资源的浪费,也防止因延迟而失效的连接请求到达服务器后产生错误;当失败时服务器并不会重传ack报文,而是直接发送RST复位报文段,进入CLOSED状态。这样做的目的是为了防止SYN洪泛攻击。

关闭连接时,第四次握手失败怎么处理?

你怎么理解分层和协议?

简述Session和Cookie的区别。

Get和Post有什么区别?

谈谈你对HTTP1.1,2.0和HTTPS理解。

相关文章

  • 计算机网络基本要素和结构

    什么是计算机网络 计算机网络的要素 计算机网络的协议 计算机网络的服务 计算机网络的结构 什么是计算机网络 计算机...

  • 计算机网络原理梳理丨计算机网络的概念

    目录 计算机网络概念 计算机网络结构 数据交换技术 计算机网络性能 计算机网络体系结构 计算机网络概念 计算机网络...

  • 计算机网络篇——网络层

    计算机网络系列 计算机网络篇——概述 计算机网络篇——链路层 计算机网络篇——网络层 计算机网络篇——传输层 计算...

  • 计算机网络篇——应用层

    计算机网络系列 计算机网络篇——概述 计算机网络篇——链路层 计算机网络篇——网络层 计算机网络篇——传输层 计算...

  • 计算机网络篇——传输层

    计算机网络系列 计算机网络篇——概述 计算机网络篇——链路层 计算机网络篇——网络层 计算机网络篇——传输层 计算...

  • 计算机网络篇——链路层

    计算机网络系列 计算机网络篇——概述 计算机网络篇——链路层 计算机网络篇——网络层 计算机网络篇——传输层 计算...

  • 计算机网络技术(一)——概论

    摘要 计算机网络的起源与发展 计算机网络的分类 计算机网络的硬件和软件设备 计算机网络的性能指标 计算机网络的功能...

  • 计算机网络 - 目录

    计算机网络01 - 应用层 计算机网络02 - 传输层 计算机网络03 - 网络层 计算机网络04 - 数据链路层...

  • 计算机网络 复习笔记 物理层

    目录 计算机网络 复习笔记 概述 计算机网络 复习笔记 物理层 计算机网络 复习笔记 数据链路层 计算机网络 复习...

  • 计算机网络知识大纲

    第一章 计算机体系结构 计算机网络概述 计算机网络的概念 计算机网络的组成 计算机网络的功能 计算机网络的分类 计...

网友评论

    本文标题:计算机网络

    本文链接:https://www.haomeiwen.com/subject/dtcgcctx.html