后续根据自己的笔记会慢慢更新,一些内容是自己学习,一些是目前研三求职过程遇到的问题。
TCP和UDP区别
1. TCP面向连接
2. TCP可靠传输
3. TCP传输有序
4. TCP不保存数据边界
5. TCP较慢
6. TCP是重量级协议,UDP是轻量级协议
7. TCP有流量控制和拥塞控制
8. TCP首部20字节,UDP8字节
TCP协议:FTP、Telnet、SMTP和POP3
UDP:DNS、SNMP
协议 | 端口号,作用 | 传输层协议 |
FTP | 21,文件传输协议 | TCP |
Telnet | 23,远程控制 | TCP |
SMTP | 25,发送邮件 | TCP |
POP3 | 110,收邮件 | TCP |
http | 80,网页浏览,超文本传输协议 | TCP |
https | 443,网页浏览,超文本安全传输协议 | TCP |
DNS | 53,域名解析 | UDP |
SNMP | 161,简单网络管理协议 | UDP |
OSI七层网络模型、TCP/IP四层网络模型
OSI7层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP四层模型:网络接口层、网际层、传输层、应用层
TTL:最大生存时间,每次经过路由都减一,等于0就丢弃这个数据包
TCP连接建⽴的三次握⼿
三次握⼿ --- 第⼀次握⼿是客户端connect连接到server,server accept client的请求之后,向client端发送⼀个消息,相当于说我都准备好了,你连接上我了,这是第⼆次握⼿,第3次握⼿就是client向server发送的,就是对第⼆次握⼿消息的确认。之后client和server就开始通讯了。
TCP三次握手作用
1. 确认双方的接受能力、发送能力是否正常
2. 指定自己的初始化序列号,为后续可靠传输做准备
3. 避免资源浪费
(第三次握手可以携带数据)
TCP四次挥⼿
四次握⼿ --- 断开连接的⼀端发送close请求是第⼀次握⼿,另外⼀端接收到断开连接的请求之后需要对close进⾏确认,发送⼀个消息,这是第⼆次握⼿,发送了确认消息之后还要向对端发送close消息,要关闭对对端的连接,这是第3次握⼿,⽽在最初发送断开连接的⼀端接收到消息之后,进⼊到⼀个很重要的状态time_wait状态,这个状态也是⾯试官经常问道的问题,最后⼀次握⼿是最初发送断开连接的⼀端接收到消息之后,对消息的确认。
TCP如何实现可靠传输
序列号、检验和、确认应答信号、重发机制、连接管理、窗口控制、流量控制、拥塞控制
DNS 解析过程以及 DNS 劫持
DNS查询的过程简单描述就是:主机向本地域名服务器发起某个域名的DNS查询请求,如果本地域名服务器查询到对应IP,就返回结果,否则本地域名服务器直接向根域名服务器发起DNS查询请求,要么返回结果,要么告诉本地域名服务器下一次的请求服务器IP地址,下一次的请求服务器可能是顶级域名服务器也可能还是根域名服务器,然后继续查询。循环这样的步骤直到查询到结果,本地域名服务器拿到结果返回给主机。
在完成整个域名解析的过程之后,并没有收到本该收到的IP地址,而是接收到了一个错误的IP地址.
Http解析过程
地址解析过程:本地的浏览器缓存、本地域名服务器、根域名服务器、顶级域名服务器
ARP地址解析协议,怎么实现,怎么找到mac地址
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址。收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。ARP提供了将IP地址转换为链路层地址的机制,而且只为在同一个子网上的主机和路由器接口解析IP地址。
http格式:四部分
请求消息:
1. 请求行(第一行:请求方式post,get,提交数据,协议类型)
2. 请求头(第二-九行)
3. 空行(第十行)
4. 请求数据
响应消息:(服务器发送给客户端的消息)
1. 状态行(http协议号、状态码、状态信息)
2. 消息报头(说明客户端要使用的一些附加消息)
3. 空行(必须有)
4. 响应正文(文本信息)
TCP头部字段:固定的20字节
按照行来记忆比较方便,6行每行4个字节:
16位源端口,16位目的地址端口号
32位序号:第一个字节编号
32位确认号:希望下次的字节数据编号
数据偏移4位,6位保留,URG,ACK,PSH,SYN,FIN,16位窗口大小
16位校验和,16位紧急指针
选项,最多40字节
HTTP和HTTPS区别
http超文本传输协议、https超文本传输安全协议
80、443
URL:统一资源定位符、(IP/位置和文件名)
数字签名:身份认证和不可抵赖性
1. 单向散列加密:MD5、SHA-1、SHA-256
2. 对称:DES、3DES、AES
3. 非对称:RSA、ECC
什么是cookie、有什么作用
1、作⽤
1. 在第⼀次登录服务器之后,返回⼀些数据(cookie)给浏览器
2. 浏览器将数据保存在本地
3. 两次发送请求时,⾃动把上⼀次请求存储的cookie发送给服务器
4. 服务器通过该数据判断⽤户
HTTP中的chunk请求消息
即大量文件,不会每次都发送应答,只会发送完成后才会应答,因为在http的body中加入了数据长度。
服务器中太多的time_wait怎么解决
1.短链接设置为长连接
2.调整内核(time_wait超出一定数量,新的连接不会再经历time_wait而是直接关闭)