TCP/IP协议

简介: 文章问个人学习的心得,仅供参考,不足之处请指出。

TCP/IP协议是什么

 TCP/IP协议是一个面向连接的可靠的网络协议
 面向连接:一个逻辑概念,它需要自己与目标主机进行三次握手来建立连接才能完成通信。创建连接完成也会进行资源的分配。
 可靠的:连接时三次握手确认机制保证自己与目标主机的连接。四次分手机制来保证连接资源的释放。每次接收消息都会返回发送方ack确认包。

什么是三次握手

QQ图片20201102211538.png
 这个图就表示三次握手的过程,我个人认为他就是为了保证可靠性而进行的一个测试,测试两台主机是否能接受对方的消息,是否能给对方发送消息。如果都没有问题那么建立连接,分配资源,生成socket

什么是四次分手

QQ图片20201102211855.png
 四次分手其实就是释放资源前确认的过程
为什么需要四次分手
 连接的两个主机是不能只顾着自己释放资源的,需要两个人同时同意才能释放资源。如同一对恋人,不能只顾着自己,如果只有一个主机释放了资源另外 一个主机还认为正在建立连接那么就会出现歧义。

注意

HTTP1.0 没有KEEP-ALICE,对于我们用浏览器请求网址时,我们就与服务器建立了连接,如果不保持连接的话,我没每次请求都会有三次握手四次分手,分配资源释放资源的过程,这肯定是不合理的,所以HTTP1.1引入了KEEP-ALIVE放在请求头中用于保持连接。

HTTP协议通信过程

QQ图片20201102211542.png
 当我们应用层程序请求与目标主机进行通信时,就会把请求信息交给传输控制层,传输控制层接到请求会尝试与目标主机进行建立连接,也就是三次握手,

那么第一个问题来了,传输控制层如何找到目标主机在哪。

首先呢操作系统不可能去维护到达互联网值每一个主机的路径,太多了,没办法实现。所以就引入了一个NEXT JUMP机制。
什么是NEXT JUMP机制
要搞懂这个问题先看这张图
QQ图片20201102215922.png
 互联网是由多个局域网来组成了,当我们一个局域网来调用其他局域网的主机时我们只需要告诉跳点(中间节点)我要与哪个IP通信。
先解释如何查找跳点
 在操作系统中维护者一个路由表,路由表由目标主机号、网关、掩码等组成当传输控制层接收到请求后会通过网络层去route table中去遍历路由表,先将IP地址与掩码进行二进制与运算,再与对应的目标主机号进行对比,如果相等就将请求交给目标主机,如果不等依次类推,这个相等的目标节点就是跳点。
QQ图片20201102220754.png
 在我们传递数据包时除了ip:port外还需要加一个MAC地址,表示下一个跳点,跳点收到数据包后发现MAC地址是自己的但是IP地址不是自己,先将保中MAC地址拆除,然后在路由表中找到到达目标地址的下一个跳点并添加MAC地址,重复操作直到找到目标主机。

 路由表的维护就是由网络层做的,跳点的拆包装包是由数据链路层来做的。而最后的物理层就是由高低电平来传递数据包的。


找到目标主机后就会进行三次握手,建立连接,进行通信。

目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 网络协议
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
100 4
|
缓存 网络协议 Linux
手把手实现tcp/ip用户态协议栈,帮你实践网络知识(网络必备,面试项目)
手把手实现tcp/ip用户态协议栈,帮你实践网络知识(网络必备,面试项目)
|
XML 存储 JSON
【面试题精讲】序列化协议对应于 TCP/IP 4 层模型的哪一层?
【面试题精讲】序列化协议对应于 TCP/IP 4 层模型的哪一层?
|
4天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
24 13
|
4天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
30天前
|
网络协议 算法 数据格式
【TCP/IP】UDP协议数据格式和报文格式
【TCP/IP】UDP协议数据格式和报文格式
81 3
|
30天前
|
XML JSON 网络协议
【TCP/IP】自定义应用层协议,常见端口号
【TCP/IP】自定义应用层协议,常见端口号
19 3
|
2月前
|
网络协议 网络架构 数据格式
TCP/IP基础:工作原理、协议栈与网络层
TCP/IP(传输控制协议/互联网协议)是互联网通信的基础协议,支持数据传输和网络连接。本文详细阐述了其工作原理、协议栈构成及网络层功能。TCP/IP采用客户端/服务器模型,通过四个层次——应用层、传输层、网络层和数据链路层,确保数据可靠传输。网络层负责IP寻址、路由选择、分片重组及数据包传输,是TCP/IP的核心部分。理解TCP/IP有助于深入掌握互联网底层机制。
359 2
|
6月前
|
网络协议 安全 网络安全
网络 (TCP/IP 四层协议中常见网络协议)
网络 (TCP/IP 四层协议中常见网络协议)
88 7
|
5月前
|
网络协议 网络架构
计算机网络——计算机网络体系结构(1/4)-常见的计算机网络体系结构(OSI体系、TCP/IP体系、原理体系五层协议)
计算机网络——计算机网络体系结构(1/4)-常见的计算机网络体系结构(OSI体系、TCP/IP体系、原理体系五层协议)
112 0