网络基础——从一根网线到TCP/IP

开始于一根网线

在生活中,我们常常能看到这样的网线:
在这里插入图片描述
实际上这叫做双绞线,除外还有同轴细线和光纤,以及电磁波,都可以用来传递信息。

同轴细线必须要采用总线型网络,即把网络设备一个个串联起来,连接简单,节省成本但维护麻烦,现在已经被淘汰。
双绞线是由四对(八根)外覆绝缘材料的互相绞叠的铜质导线组成,并包裹在一个绝缘外皮内,因为使用时必须添加集线器或交换机,所以增加了网络的成本。双绞线分为STP和UTP,大多数局域网使用UTP.

从模拟信号到数字信号

学过数电模电的同学都知道可以用0v,5v代表0,1。实际上这个用专业的术语叫状态符号(signals)。只要规定一个固定的频率(我们把它叫做波特率)来传递0v和5v,也就能传递一连串0101。
在这里插入图片描述
Q:虽然能传递0和1但如何传递字符?
A:假设每隔8位,比如01001011,转为10进制是75,我们再需要建立数字和字符的关系,即ASCII码表75就代表着K

时钟同步

因为传输的信号不只是如信号A那样,大多数会有连续的0或1,所以我们需要保证双方保持一个时钟同步,即使快/慢了半个周期(时钟滑移),数据就可能发生很大的变化。
要做到时钟同步,有GPS通过卫星同步,原子钟同步等,最常用的是通过增加一根额外的线来传输时间脉冲,这样虽然做到了数字信号之间的同步,但问题是很难做到时钟脉冲和数字信号之间的同步。
于是我们采用了新的编码方式

曼彻斯特编码

曼彻斯特编码是一种用电平跳变来表示1或0的编码方法,比如在规定的时间内将由高电平到低电平当作0,由低电平到高电平当作1。
特点:
1)传输流的速率是原始数据流的两倍,要占用较宽的频带 。
(2)信号恢复简单,只要找到信号的边缘进行异步提取即可 。
(3)10Mb/s以太网(Ethernet)采用曼彻斯特码 。
在这里插入图片描述

从0和1到数据帧

光能根据ASCII表把1和0翻译成字符还不行,我们需要一个协议,规定从那开始翻译到那结束,即数据帧的开始与结束。

HLDC协议(链路控制协议)

HLDC着重于对分段成物理块或包的数据的逻辑传输,块或包由起始标志引导并由终止标志结束,也称为帧。帧是每个控制、每个响应以及用协议传输的所有信息的媒体的工具。所有面向比特的数据链路控制协议均采用统一的帧格式,不论是数据还是单独的控制信息均以帧为单位传送。

每个帧前、后均有一标志码01111110,用作帧的起始、终止指示及帧的同步。标志码不允许在帧的内部出现,以免引起畸意。为保证标志码的唯一性但又兼顾帧内数据的透明性,可以采用“0比特插入法”来解决。该法在发送端监视除标志码以外的所有字段,当发现有连续5个“1”出现时,便在其后添插一个“0”,然后继续发后继的比特流。在接收端,同样监除起始标志码以外的所有字段。当连续发现5个“1”出现后,若其后一个比特“0”则自动删除它,以恢复原来的比特流;若发现连续6个“1”,则可能是插入的“0”发生差错变成的“1”,也可能是收到了帧的终止标志码。后两种情况,可以进一步通过帧中的帧检验序列来加以区分。“0比特插入法”原理简单,很适合于硬件实现。

数据帧
  • mac帧:
    MAC帧的帧头包括三个字段。前两个字段分别为6字节长的目的地址字段和源地址字段,目的地址字段包含目的MAC地址信息,源地址字段包含源MAC地址信息。第三个字段为2字节的类型字段,里面包含的信息用来标志上一层使用的是什么协议,以便接收端把收到的MAC帧的数据部分上交给上一层的这个协议。例如,当类型字段的值是0x0800时,就表示上层使用的是IP数据报;若类型字段的值为0x8137,则表示该帧是由Novell IPX 发过来的。
    MAC帧的数据部分只有一个字段,其长度在46到1500字节之间,包含的信息是网络层传下来的数据。
    MAC帧的帧尾也只有一个字段,为4字节长,包含的信息是帧校验序列FCS(使用CRC循环冗余校验码校验)。

在这里插入图片描述

  • ppp帧:
    PPP采用7EH作为一帧的开始和结束标志(F);其中地址域(A)和控制域(C)取固定值(A=FFH,C=03H) ;协议域(两个字节)取0021H表示IP分组,取8021H表示网络控制数据,取C021H表示链路控制数据;帧校验域(FCS)也为两个字节,它用于对信息域的校验。若信息域中出现7EH,则转换为(7DH,5EH)两个字符。当信息域出现7DH时,则转换为(7DH,5DH)。当信息流中出现ASCII码的控制字符(即小于20H),即在该字符前加入一个7DH字符。
    在这里插入图片描述
问题

在这里插入图片描述

假设我们在一个以太网中的主机发送给另一个以太网中的主机,我们已经知道了接收方的mac地址,在这种情况下,数据帧会在发送方的以太网中广播,但并没有回应,所以我们需要一种新的地址,不仅仅能在以太网中使用还可以在整个网络中使用,能被网络中所有路由器理解并正确转发,这个地址叫做IP地址,使用的是IP协议。

从以太网到IP

IP地址
  • IP地址的结构
    IP地址是用来识别网络上的设备,因此,IP地址是由网络地址与主机地址两部分所组成。
  • 网络地址
    网络地址可用来识别设备所在的网络,网络地址位于IP地址的前段。当组织或企业申请IP地址时,所获得的并非IP地址,而是取得一个唯一的、能够识别的网络地址。同一网络上的所有设备,都有相同的网络地址。IP路由的功能是根据IP地址中的网络地址,决定要将IP信息包送至所指明的那个网络。
  • 主机地址
    主机地址位于IP地址的后段,可用来识别网络上设备。同一网络上的设备都会有相同的网络地址,而各设备之间则是以主机地址来区别。
    在这里插入图片描述以上就是使用了ip地址的网络
    假设我们要从处在192.168.16.0/24的网段发送到172.25.254.0/24中的172.25.254.144,必须要将数据包转发到网关192.168.16.1,仅仅知道ip是无法转发的还需要A主机在以太网中广播获得网关的mac地址,所以我们需要一个新的协议,即ARP协议
ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
在这里插入图片描述在这里插入图片描述

实验

wireshark分析ping命令

从IP到TCP

我们已经知道了如何使用IP把数据帧从一台机器发送到另一台机器,但是一次发送的数据最多只有1500的payload,如何发送大于1500的包?我们可以把数据分割为一个个包来发送,但这样就对数据传输有了更高的要求:

  • 丢包重新发送
  • 重新排列数据包
  • 多个会话互不影响
  • 流量控制
    于是就有了 TCP (传输控制协议,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
    TCP协议有以下特点:
    (1)基于流的方式;
    (2)面向连接;
    (3)可靠通信方式;
    (4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;
    (5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。
三次握手

三次握手是tcp 服务器与客户端建立连接的手段:
在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递

  • 第一次
    第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
  • 第二次
    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
  • 第三次
    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手
    在这里插入图片描述
四次挥手

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

  • 1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
  • 2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。同时告诉应用程序关闭连接
  • 3) 服务器关闭客户端的连接,发送一个FIN给客户端。
  • 4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。
    HTTP协议是四层协议中的应用层,作为程序员必须了解的协议
    HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求,默认端口80。
    在这里插入图片描述
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值