![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络协议入门教程
「已注销」
这个作者很懒,什么都没留下…
展开
-
lesson6 简单网络连接-网卡与以太网
在网络协议的四层或者七层结构中,有一层叫做物理层,具体的内容就涉及到网卡和以太网的知识。1.以太网的基本知识以太网是一种为多台计算机能够彼此自由和廉价地相互通信而设计的通信技术。这种网络的本质就是一根网线。下图是以太网的基本结构:图中收发器的功能只是将不同网线之间的信号连接起来而已。因此,当一台计算机发送信号时,信号就会通过网线流过整个网络,最终到达所有的设备(大家想下高中学习的电路原理就清楚了)。信号传递是通过在MAC头部的地址来判断网络上的接收者是哪个设备的。网络发展过程中,连接网线的设备从简单原创 2020-11-08 21:36:13 · 451 阅读 · 0 评论 -
lesson5 简单网络连接-IP层的功能
前面讲了TCP协议的一些特性,下面我们来讲下IP层的一些知识。1.包的基本知识包是由头部和数据两部分组成的,头部是一些控制信息的组合,每个在网络上传输的包都是完整的。一个完整的网络包的基本结构如下:数据包在网络上传输时,需要经过转发设备的转发操作,从一个转发设备到达另一个转发设备,最终到达服务器所在的局域网,完成数据的传送过程。这里的转发设备有很多类型,包括路由器(工作在IP层)、交换机、集线器(工作在以太网层)等等。在IP模块,会为网络包添加IP头和MAC头。这两个头部分别具有不同的功能:原创 2020-11-07 20:31:50 · 601 阅读 · 0 评论 -
lesson4 简单网络连接-网络断开的简述
这节课,我们来简单描述下网络断开的过程。1.四次挥手毫无疑问,收发数据结束的时间点应该是应用程序判断所有数据都已经发送完毕的时候。这时,发送数据完成的一方会发起断开过程。也就是说,客户端和服务器都可以发起断开连接请求,这一点与网络连接建立过程不同。这里我们以服务器一方发起断开过程为例来进行讲解:首先,服务器的协议栈(也就是调用socket库)会生成包含断开信息的TCP头部,也就是将TCP头部中的标志位FIN比特位设置位1。接下来,协议栈委托IP模块向客户端发送数据。同时,服务器的套接字中也会记录原创 2020-11-07 18:51:58 · 256 阅读 · 0 评论 -
lesson3 简单网络连接-网络数据的收发
这节课,我们简述下网络中的数据收发过程。1.网络包的形成在完成网络连接后,就进入到数据收发阶段。使用Socket中的Write(…)接口将数据写到发送缓冲区中。写进缓冲区的数据并不会立即被发送出去。而是等到缓冲区数据到达一定的长度或者发送时间限制后才将包转交给IP层。这样做的原因是因为应用程序一次写入的数据是无法确定长度的,如果每次都直接封装成包发送出去,就会造成网络上有大量的小包,导致网络效率下降,但如果一直因为数据不够而不发送,又会造成较大的延迟。所以协议栈就规定了一个称为MTU的标准来确定发包的原创 2020-11-07 16:32:55 · 423 阅读 · 0 评论 -
lesson2 简单网络连接-网络连接的建立
继上篇课程《浏览器消息生成》,我们这篇来简述下网络连接建立相关的一些基础知识。1.Socket首先,我们来看下面一张图:在这张图中,浏览器等应用软件将请求消息传递给了操作系统。操作系统将工作交给了协议栈,也就是由TCP、UDP、IP等协议构成的网络通信软件。这里要注意一点,这些TCP、UDP、IP之类的是一种规范,真正干活的是操作系统中的socket库。什么是Socket呢?中文翻译是套接字,是一整套用于网络连接、数据收发、网络断开、状态检测等功能的库。Socket库中有一个Socket结构体原创 2020-11-07 15:24:25 · 378 阅读 · 0 评论 -
lesson1 简单网络连接-浏览器生成消息
今天开始,我会与大家分享我花了半个月学习的网络连接入门书籍 ——《网络是怎样连接的》。第一章 浏览器生成消息说到浏览器,大家并不陌生,每天我们都从网络上获取大量的信息,比如国家大事、体育频道、淘宝购物等等。虽然手机上有了各种专门的app用于获取上面这些信息,但我们总会不由自主的打开某些个不知道用于什么用途的网站(你懂的)。当我们在浏览器(什么谷歌、火狐、IE等等)的地址栏中输入一个网址时(比如www.baidu.com)时,就开始了一次完整的网络之旅。这些Web浏览器是使用HTTP/HTTPS协议的,原创 2020-11-07 13:52:37 · 197 阅读 · 0 评论