网络编程技术(一)——网络七层协议
前言
2019年再来讲这些最基础也是最底层的协议,看起来过时,但是网络发展了几十年,依旧这么经典,从七大协议,到TCP三次握手,再到HTTP协议、套接字通信,学习路径无非就这些。 其实所有的内容都可以在百度百科甚至别人写的博客文章上面轻易找到,但是我讲解的却是一些核心且精华而且是易懂的部分。我也是一个初学者,一个大一软件学院的学生,这些知识只是业余时间所学得来,所讲的内容也是白话文,不会有各种专业术语,零基础的人也能听懂。若有不到之处敬请提出!OSI七层协议
先来一张最简单最常见的表 [table id=2 /]物理层
物理层,顾名思义就是网络传输在物理上的介质,是OSI协议的最底层,也是最基础的一层。物理层采用了各种现成的协议,如IEEE802.3/802.4/802.5等 其它的我认为不需要知道,作为小白的我也只知道这些。 我们日常工作学习中,采用的最常见的物理层链接方式就是随处可见的RJ45网线,我们称之为Ethenet/RJ45协议。另外在服务器上面使用的接口也从我们的铜芯线缆改为光纤传输。数据链路层
数据在物理层上的传输是01的二进制,而数据链路层的工作就是讲电信号进行分组,这就出现了现在最广泛的以太网协议,每一组的数据称为一帧,里面包含了接收数据者的信息以及要传输的数据内容。网络层
数据链路层的数据传输方式是通过广播的方式来进行接收。广播的含义,例如5台计算机在同一局域网内,当A发出数据,会传输到所有的5台计算机,其中每台计算机会对数据包中包含的接受者信息开始判断接受者是不是自己,若不是自己则丢掉这个包。 那么不同的两个局域网该怎么通讯,这就出现了IP协议,倘若局域网内的所有计算机都拒绝了这个包,那么这个包将交给这个局域网内的一台网关进行处理,网关去负责和别的局域网进行通信。传输层
传输层是整个网路协议中最值得学习,也是最精华的一部分。 两台计算机能进行通信了,也能找到对方在哪了,现在就要进行数据的通信了,可是也不能乱来,进行通信也要有一定的标准,这就有了传输层。 传输层有2大协议,TCP和UDP 我们浏览网页,看视频,看这篇文章的时候,都是TCP协议进行传输的。 TCP协议是一种面向连接的协议,双方构建起一个连接,知道我发出去的数据包对方有没有收到,对方发来的数据包我有没有收到,双方互相接收的数据包是否完整,有没有进行丢包。TCP协议是可靠的传输协议 UDP协议就不一样,它比较粗暴,不用进行连接,甚至都不知道对方在不在线,直接发送一个数据包到目标的地址,也不知道对方有没有收到,就好比你直接写了一封信,写一个地址就寄出去,不知道对方有没有收到。我们进行的网络游戏,都是UDP进行发包的,是为了保证效率,为了保证网络游戏不同客户端之间的同步性。会话层
会话层的概念比较模糊,在我们能够正常进行通信了,我们为了提高效率,会话层帮我们做的工作就是自动收发包,自动寻址的操作。表示层
表示层则为了解决不同操作系统之间进行网路通信的语法问题。应用层
应用层就好理解了,我们有了一切的基础,就可以在这之上进行开发了,比如开发电子邮件SMTP/POP协议等,访问网页的HTTP协议,远程传输文件的FTP协议等等。总结
网络七层协议非常好理解,一层层的嵌套关系,即使网络发展再快,也是少不了这7层协议的。
License:
CC BY 4.0