学习笔记--TCP/IP协议族
一、什么是TCP/IP协议族
TCP/IP协议族 (TCP/IP Protocols) 是一组用来实现互联网上主机之间通信的协议的集合。所谓协议,就是规则。可是为什么互联网需要遵守这些规则呢?请试想一下这些问题:如何向对方发送我们的需求?如何根据目标的名字找到通信目标的地址?如何向对方传输数据?如何找到对方?等等等…这些问题需要事先确定好解决方法,规定好规则,让通信的双方相互遵守这些规则,这样我们在通信过程中才能够快速地找到对方,将各种数据按照规则井然有序地传输,使我们的通信更加稳定、安全、迅速!这就是TCP/IP协议族的由来啦!
二、TCP/IP协议族的分层管理
TCP/IP协议族按照层次分为了四层。应用层(Application Layer)、传输层(Transport Layer)、网络层(Internet Layer)、数据链路层(Network Link Layer)。为什么协议族要分层呢?因为协议族层次化之后,设计应用也变得比较简单了。比如处于网络层中的IP协议只需关心如何使得数据能够到达指定的IP地址的问题,而不必关心数据如何传输(让处于传输层的TCP协议干就行)。这样一层的协议只负责一个层次的问题, 协同合作地完成通信任务。
(一)应用层
应用层直接向用户提供网络应用服务。这些应用服务包括HTTP(HyperText Transfer Protocol,超文本传输协议)、DNS(Domain Name System,域名系统)等其他许多协议。
(二)传输层
传输层提供处于互联网中主机之间传输数据的服务。在传输层中有TCP(Transmission Control Protocol,传输控制协议)等协议。
(三)网络层
网络层解决了在网络上数据包(数据包是网络传输的最小数据单位)的传输路线的问题。网络层所起的作用就是在众多路线中选择一条最合适的传输路线(最短路径的算法?),使数据包传送到对方的计算机中。IP(Internet Protocol,互联网协议)在该层中。
(四)数据链路层
链路层用来处理数据在媒介(连接网络的硬件部分)的传输问题。比如怎么把数据从网卡发送到光纤等。
三、一些重要的协议
(一)HTTP协议
单独把HTTP协议拿出来讲,是因为我感觉这东西对WEB开发来说还是挺重要的!
以后我想去做后端开发,这东西肯定得有了解才行哇!
HTTP(HyperText Transfer Protocol)协议是基于TCP协议的应用层协议。HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准。它生成针对服务端的HTTP请求数据,客户端将这个HTTP请求传送到服务器上的指定端口(默认端口为80),使服务器将用户需要的数据(比如HTML文件和图像)传送给客户端。
HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议对数据进行了加密处理。
(二)DNS服务
DNS(Domain Name System,域名系统)提供主机的域名和IP地址之间的转换的服务。它负责域名解析,根据域名查询IP地址或根据IP地址反查域名。
域名就是主机的名字,比如www.baidu.com是一个域名。
IP地址是分配给网络上使用IP协议的设备的数字标签,IP地址有IPv4和IPv6两个版本,IPv6的地址数比IPv4的更多,号称地球上每一粒沙子都可以拥有自己的IP地址,还是很🐂🍺。
为什么需要DNS服务呢?
用户通常使用主机名来访问对方的主机,而不是直接通过IP地址访问的。因为域名与 IP地址的一组纯数字相比,我们更容易记忆主机的域名…所以在通信时,域名和IP地址之间需要有转换,DNS服务应运而生。
(三)TCP协议
TCP是一种可靠的、基于字节流服务的传输层通信协议。它就是为了确保数据能容易地传给对方。
所谓的字节流服务(Byte Stream Service)是指,为了更容易地传输数据,TCP将数据分割成以报文段(segment)为单位的数据包进行传输。数据被分割成了网络传输的最小数据单位,这样TCP传输起来就很容易、快速了!
而可靠的传输服务是指,通过TCP 的三次握手(three-way handshaking)策略,TCP能够把数据可靠传给对方。
TCP的三次握手:用 TCP 协议把数据包传送的过程中,TCP 会向对方确认是否成功送达。握手过程中使用了 TCP 的标志(Flag),即SYN(Synchronize) 和 ACK(Acknowledgement)。
首先,发送端发送一个带 SYN 标志的数据包给对方。
其次,接收端收到数据包后,会向发送端回传一个带有SYN/ACK 标志的数据包,来表示确认收货。
最后,发送端再向接收端发送一个带 ACK 标志的数据包,来表示收到回复。
若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包。
(四)IP协议
IP协议的主要作用是通过寻找对方的地址,确保数据传达给对方。这就要涉及传输路线的选择问题,即路由功能。IP协议使用IP地址来实现路由功能,选择最合适的数据传输路线。
四、各协议之间的关系
下图表示的是当客户端访问hackr.jp网页时,各协议所起的作用。
五、总结
感谢大家能看到这儿…这是我第一次写技术博客…自己不是很熟练,有些格式的小问题搞了半天,也参考了很多资料,写得不好…还请读者们见谅…不过感觉写起来很有趣很尽兴!嘿嘿!然后这个笔记也只是对TCP/IP协议族一个大概的认识,写得很浅,许多知识都没深入下去,先给自己埋个坑吧,以后学计网时再系统性的学习(悲)。学到老,活到老,加油!
这里是本学习笔记的参考资料:
[1]: https://www.cnblogs.com/roverliang/p/5176456.html
[2]: https://zhuanlan.zhihu.com/p/29724438
[3]:https://en.wikipedia.org/wiki/Internet_protocol_suite