Go语言---网络编程基础知识

网络协议

从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。
假设,A、B 双方欲传输文件。规定:

  • 第一次,传输文件名,接收方接收到文件名,应答OK 给传输方;
  • 第二次,发送文件的尺寸,接收方接收到该数据再次应答一个 OK;
  • 第三次,传输文件内容。同样,接收方接收数据完成后应答 OK 表示文件内容接收成功。
    由此,无论 A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数据传输规则。双方都按此规则发送、接收数据。A、B 之间达成的这个相互遵守的规则即为协议。
    这种仅在 A、B 之间被遵守的协议称之为原始协议。
    当此协议被更多的人采用,不断的增加、改进、维护、完善。最终形成一个稳定的、完整的文件传输协议,被广泛应用于各种文件传输过程中。该协议就成为一个标准协议。最早的ftp 协议就是由此衍生而来。

网络分层架构

为了减少协议设计的复杂性,大多数网络模型均采用分层的方式来组织。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。每一层利用下一层提供的服务来为上一层提供服务,本层服务的实现细节对上层屏蔽。
在这里插入图片描述

层和协议

网络的每一层,都定义了很多协议。这些协议的总称,叫“TCP/IP协议”。TCP/IP 协议是一个大家族,不仅仅只有 TCP 和IP协议,它还包括其它的协议,如下图:
在这里插入图片描述

  • ARP:是正向地址解析协议(Address Resolution Protocol),通过已知的 IP,寻找对应主机的 MAC 地址。
  • RARP:是反向地址转换协议,通过MAC 地址确定IP地址。
  • IP:是因特网互联协议(Interet Protocol)
  • ICMP:是 Intemet 控制报文协议(Intermet Control Message Protocol)它是 TCP/IP 协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ping 127.0.0.1就在这一层。
  • IGMP:是 Internet 组管理协议(Intermet Group Management Protocol),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。
  • TCP:传输控制协议(Transmission ControlProtocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  • UDP:用户数据报协议(User Datagram Protocol),是 OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
  • HTTP:超文本传输协议(Hyper Text Transfer Protocol),是互联网上应用最为广泛的一种网络协议。
  • FTP:文件传输协议(File Transfer Protocol)

每层协议的功能

在这里插入图片描述

链路层

以太网规定,连入网络的所有设备,都必须具有“网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。通过网卡能够使不同的计算机之间连接,从而完成数据通信等功能。网卡的地址–MAC 地址,就是数据包的物理发送地址和物理接收地址。注意:MAC是物理地址

网络层

网络层的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做“网络地址”,这是我们平时所说的IP地址。这个IP地址好比我们的手机号码,通过手机号码可以得到用户所在的归属地。
网络地址帮助我们确定计算机所在的子网络,MAC 地址则将数据包送到该子网络中的目标网卡。网络层协议包含的主要信息是源IP和目的IP。
于是,“网络层”出现以后,每台计算机有了两种地址,一种是 MAC 地址,另一种是网络地址。两种地址之问没有任何联系,MAC 地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。
网络地址帮助我们确定计算机所在的子网络,MAC 地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理 MAC 地址。注意:IP地址是逻辑地址

传输层

当我们一边聊 QQ,一边聊微信,当一个数据包从互联网上发来的时候,我们可以使用“端口”(port),来获取是什么软件发送来的信息,它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。
端口特点:

  • 对于同一个端口,在不同系统中对应着不同的进程
  • 对于同一个系统,一个端口只能被一个进程拥有

应用层

应用程序收到“传输层”的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。“应用层”的作用,就是规定应用程序的数据格式。

网络通讯条件

  • 网卡–MAC地址,物理地址,是固定好的,不需要用户处理,ARP协议可以通过IP找到MAC
  • IP地址–逻辑地址,需要用户指定–为了确定哪一个电脑接收
  • 端口–为了确定那个程序接收

发送端组包—接收端拆包

在这里插入图片描述

  • 32
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值