美文网首页
哎哟哟,听说你TCP/IP协议掌握得不错呢,进来看看有你不会的吗

哎哟哟,听说你TCP/IP协议掌握得不错呢,进来看看有你不会的吗

作者: Java程序员石头 | 来源:发表于2021-12-08 13:18 被阅读0次

1. TCP简介

TCP是面向连接的、可靠的,基于字节流的传输层通信协议

将应用层的数据流分割成报文段并发送给目标节点的TCP层

数据包都有序号,对方收到则发送ACK确认,未收到则进行重传

使用校验和来检验数据在传输过程中是否有损失

2. TCP

2.1 TCP中重要的控制位(Control Flag)

ACK:确认序号标志

SYN:同步序号,用于建立连接

FIN:用于释放连接

URG:紧急指针标志

PSH:push标志

RST:重置连接标志

3. 三次握手,握手为了你我之间的联系

第一次握手:建立连接时,用户端发送SYN包到服务器,等待服务器确认

第二次握手:服务器收到SYN包,必须确认客户的SYN,同时发送SYN+ACK包给客户端

第三次握手:客户端收到SYN+ACK包后,向服务器发送确认包ACK,此包发送完毕,服务器接收,进入连接状态

3.1 为什么需要三次握手才能建立连接?

为了初始化Sequence Number的初始值,如图上的seq,要进行互相通知,作为以后数据通信的序号,保证以后传输的数据正确性,防止乱序

3.2 建立连接后,client出现故障怎么办?

服务器的保护机制

由服务器向客户端发送保活探测报文,如果未收到响应则继续发送,直到达到保活探测次数仍未收到回应,则会中断连接

4. TCP的四次挥手

第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传输

第二次挥手:服务器收到FIN后,发送一个ACK给客户端,确认需要为收到的序号+1

第三次挥手:服务器发送一个FIN,用来关闭服务器到客户端的数据传输

第四次挥手:客户端在收到服务器发送的FIN后,发送一个ACK给服务器,确认序号为收到的序号+1,与服务器的连接进入关闭状态,完成四次挥手

4.1 为什么第四次挥手后,客户端再等待2MSL才能关闭连接?

确保有足够的时间让服务器收到ACK包

避免新旧连接的混淆

4.2 为什么四次挥手才能断开连接?

因为客户端和服务器是全双工通信,发送方和接收方都需要发送FIN包和接受ACK包才能断开连接,由一端先发起断开连接的请求,所以看起来像四次挥手。

全双工通信:又称为双向同时通信,即通信的双方可以同时发送和接收信息的信息交互方式。

5. UDP

5.1 UDP报文头

特点:

面向非连接,不维护连接状态,支持同时向多个客户端传输相同的信息

数据包报头只有8字节,额外开销较小,

吞吐量只受限于数据生成速率,传输速率以及计算机的性能

尽最大努力交付,不保证数据的可达

面向报文,不对应用程序提交的报文信息进行拆分或者合并

5.2 TCP与UDP的区别

面向连接VS面向无连接

可靠性VS不保证可靠性

数据有序性VS数据无序性

速度慢VS速度快(UDP应用于视频、广播等)

重量级VS轻量级

6. TCP滑动窗口

RTT:发送一个数据包到收到一个ACK所需的时间

RTO:重传时间间隔

TCP利用滑动窗口实现流量控制,并保证TCP的可靠性

6.1 高速重发机制

在窗口较大,又出现报文段丢失的情况下,同一个序号的确认应答将会被重复不断地返回(比如第1001~2000数据丢失,那么接受端会不断地返回下一个数据是1001的应答),而发送端主机接收到连续3次同一个应答,就会对其进行重发。

6.2 流量控制

如果接收端将本该接收到的数据丢弃的话,就会引起重发机制,从而导致流量的浪费。接收端向发送端主机通知自己能够接收数据的大小,于是发送端会发送不超过该数据大小的数据。该数据大小限度就是窗口的大小,是由接收端主机决定的。TCP首部报文中包含窗口大小的数据。

7. HTTP

7.1 特点

支持客户/服务器模式

简单快速

灵活

无连接

无状态,对事务处理没有记录

7.2 请求和响应的步骤

客户端连接到web服务器

发送http请求

服务器接收请求并返回http响应

释放tcp连接

客户端浏览器解析HTML内容

7.3 在浏览器输入URL地址,按下回车键之后发生了什么?

DNS解析(将对应的地址解析为IP地址)

TCP连接(三次握手)

发生HTTP请求

服务器处理请求并返回HTTP报文

浏览器解析渲染页面

断开连接(四次挥手)

7.4 HTTP状态码

1XX:指示信息

2XX:成功

3XX:重定向

4XX:客户端错误

5XX:服务器端错误

7.4.1 常见的状态码

200 OK

400 Bad Request:客户端请求语法错误

401 Unauthorized:请求未经授权

403 Forbidden:服务器收到请求,但是拒绝访问

404 Not Found

500 Internal Server Error:服务器发生不可预期的错误

503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

7.5 Get和Post的区别

Http报文层面:Get请求放在URL地址上;Post放在报文体内

数据库层面:Get是查询操作;Post会改变数据库的数据

Get可以被缓存,被存储;Post不能

7.6 Cookie和Session

7.6.1 Cookie

是由服务器发给客户端的特殊信息,以文本的形式存放在客户端

客户端再次请求的时候,会把Cookie回发

服务器接收到后,会解析Cookie生成相应的内容

7.6.2 Session

服务器端的机制,在服务器上保存信息

解析客户端请求并依据Session Id返回信息

7.6.3 两者的区别

Cookie数据存放在客户端的浏览器上,Session数据存放在服务器上

Session相对于Cookie更安全

(若考虑减轻服务器负担,应当使用Cookie)

8. HTTPS

8.1 SSL(Security Sockets Layer,安全套接层)

为网络通信提供安全及数据完整性的一种安全协议

是操作系统对外的API,SSL3.0后更名为TLS

身份验证和数据加密,保证网络通信的安全和数据的完整性

8.2 加密的方式

对称加密:加密和解密都使用同一个密钥

非对称加密:加密和解密使用不同的密钥(公钥和私钥,安全,但是效率低)

哈希算法:将任意长度的信息转换为固定长度的值,算法不可逆转

数字签名:证明某个消息和文件是某人发出的/认同的

8.3 HTTPS数据传输流程

浏览器将支持的加密算法发送给服务器

服务器选择一套浏览器支持的加密算法,以证书的形式发给浏览器

浏览器验证证书的合法性,并结合证书公钥加密信息发送给服务器

服务器使用私钥解密信息,验证哈希,加密相应消息后回发浏览器

浏览器解密相应消息,并对消息进行验证,之后进行加密加护数据

8.4 HTTPS和HTTP的区别

HTTPS需要到CA申请证书,HTTP不需要

HTTPS密文传输,HTTP明文传输

连接方式不同,HTTPS默认使用443端口,HTTP使用80端口

HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全

8.5 HTTPS真的安全吗?

浏览器默认填充http://,请求需要进行跳转,有被劫持的风险

可以使用HSTS优化

相关文章

  • 哎哟哟,听说你TCP/IP协议掌握得不错呢,进来看看有你不会的吗

    1. TCP简介 TCP是面向连接的、可靠的,基于字节流的传输层通信协议 将应用层的数据流分割成报文段并发送给目标...

  • 关于网络基础知识TCP/IP(三)

    四、掌握TCP/IP协议:TCP/IP3次握手 4.1 IP协议是TCP/IP协议中最重要的协议,它为TCP UD...

  • TCP/IP协议

    如果面试官问你,你了解TCP/IP的协议吗,你知道TCP/IP 和UDP/IP的差异吗?我想你可以这么回答 首先,...

  • Android 面试题精选合集

    面试时,你被问到过 TCP/IP 协议吗? - 掘金前言: 精通 TCP/IP,熟练使用 Socket 进行网路编...

  • 第2章 TCP/IP协议族及其安全隐患

    考试大纲 掌握TCP/IP协议的内容 掌握网络层协议及其安全威胁 掌握TCP和UDP协议及其安全威胁 计算机网络 ...

  • TCP协议

    TCP/IP协议分层详解TCP/IP协议详解通俗易懂网络协议(TCP/IP概述)什么是TCP/IP协议?

  • 哎哟、不错哟!

    新的地方,新的人,新的开始!过去的就让时间来结束那一切吧!未来的就让我来开启新的篇章吧!人生惶惶几十年、虚度那么多...

  • 哎哟 不错哟

    每天都看见你不停的打电话 被人邀约 约别人 感觉你好忙哦 相反的我总是一个人 很少有人约我 约别人也不一定能约到...

  • TCP HTTPS专题

    TCP HTTPS专题 TCP协议 TCP/IP协议分层 TCP/IP 协议族里重要的一点就是分层。 TCP/IP...

  • TCP/IP协议

    一、关于TCP/IP TCP/IP协议是一个协议集合,HTTP协议,IP协议,TCP协议,DNS协议等都属于TCP...

网友评论

      本文标题:哎哟哟,听说你TCP/IP协议掌握得不错呢,进来看看有你不会的吗

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