区块链技术基础语言:Go语言网络编程

上传人:m**** 文档编号:550941010 上传时间:2022-10-04 格式:DOCX 页数:16 大小:139.19KB
返回 下载 相关 举报
区块链技术基础语言:Go语言网络编程_第1页
第1页 / 共16页
区块链技术基础语言:Go语言网络编程_第2页
第2页 / 共16页
区块链技术基础语言:Go语言网络编程_第3页
第3页 / 共16页
区块链技术基础语言:Go语言网络编程_第4页
第4页 / 共16页
区块链技术基础语言:Go语言网络编程_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《区块链技术基础语言:Go语言网络编程》由会员分享,可在线阅读,更多相关《区块链技术基础语言:Go语言网络编程(16页珍藏版)》请在金锄头文库上搜索。

1、IIB财经Go语言网络概述 1.1网络协议网络协议就是为网络数据交换而制定的规则、约定与标准。1.2分层模型为了降低网络设计的复杂性,绝大多数网络都组织成一堆相互叠加的层。每一层 都建立在下一层的基础之上,且每一层的目的都是向上一层提供特定的服务,旦 是把如何实现这些服务的细节对上一层加以屏蔽。用户接触到的是网络体系的应 用层,属于最上层;网络体系层级越低,越接近硬件。常见的网络体系结构分层模型有两种:OSI模型和TCP/IP模型。OSI模型将网 络层分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用 层。TCP/IP模型将网络层分为四层:主机至网络层、互联网层、传输层和应用

2、层。OSI模型对于讨论计算机网络非常有用,旦是没有流行;TCP/IP模型没有被 纳入国际标准,旦是协议被广泛地使用。为了更清晰地解释网络体系结构,本文 采用如图所示的五层模型。IIB财径应用 (Application Layer)物理层(Pliysieal Layer)1.3每层协议的功能网络体系结构的每一层都是为了实现一种功能。为了实现这些功能,需要大家遵 守共同的规则,因此每一层都定义了很多协议。这些协议的总称叫做“互联网协 议(Internet Protocol Suite)”。1.3.1物理层物理层就是把电脑连接起来的物理手段。它定义了物理设备的标准,如网线的接 口类型、光纤的接口类型

3、、各种传输介质的传输速率等。它的主要作用是传输比特流(就是将1、0转化为电流强弱来进行传输倒达目的 地后再将电流强弱转化为1、0,也就是数模转换与模数转换),这一层的数据叫 做比特。财径閤工电脑的物理层连按1.3.2数据链路层-132.1设计数据链路层的原因在原始的物理线路上传输数据信号是有差错的,数据链路层采取差错检测、差错 控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路, 向网络层提供高质量的服务。-1.3.2.2数据链路层的基本功能数据链路层位于物理层上方,它定义了如何让格式化数据以帧(Frame)为单位进 行传输,以及如何控制对物理介质的访问。数据链路层还提供了错

4、误检测和纠正 措施,以确保数据的可靠传输。在数据链路层,通过以帧为单位进行数据传输、以获取网卡MAC地址作为对物 理介质的访问控制、以广播作为数据的发送方式,多台计算机之间可以相互传送 数据。hb财经-132.3以太网协议以太网是目前最流行的一种局域网组网技术,它规定了在以太网中传输的数据帧 结构。以太网协议将一组电信号构成的一个数据包叫做“帧”,帧分为两个部分:标头(Head)和数据(Data)。Head IData闊3肚信号数据包标头(Head):数据包的说明项,比如发送者、接受者、数据类型等,固定为18 字节;数据(Data):数据包的具体内容,最短为46字节,最长为1500字节。因此,

5、整个帧最短为64字节,最长为1518字节。如果数据很长,就必须分割 成多个帧进行发送。 1.3.2.4 MAC 地址介质访问控制(Medium Access Control)简称MAC,它是解决当局域网中共用信道的使用产生竞争时,如何分配信道的使用权问题。区块链技术 MAC(Medium Access Control)地址,也称为物理地址、硬件地址,用来定义 网络设备的位置。一个主机有一个MAC地址,MAC地址是网卡决定的,是固 定的。以太网规定,连入网络的所有设备,都必须具有“网卡”接口。数据包必须是从块网卡传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址, 也就是MAC地址。每

6、块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二 进制位,通常用12个十六进制数表示。圈4网卡地址前6个十六进制数是厂商编号后6个是该厂商的网卡流水号。有了 MAC地址, 就可以定位网卡和数据包的路径了。132.5广播nil财经以太网规定数据包必须从一块网卡传送到另一块网卡,旦是一块网卡无法直接获 取另一块网卡的MAC地址。在网络层中会介绍一种ARP协议(Address Resol ution Protocol,地址解析协议),如果两台主机位于同一个子网络(由活性节点 组成的局部网络),通过对方的IP(Internet Protocol,网络之间互连的协议)可 以获得对方的

7、MAC地址。虽然获得了对方的MAC地址,系统并不是把数据包准确地发送给接收方。其中 种实现数据包发送到接收方的方式就是广播,就是以广播的方式向本网络内所 有计算机发送,让每台计算机自己判断,是否为接收方。 上图中,1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、 5号计算机都会收到这个包。它们读取这个包的“标头,找到接收方的MAC 地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进- 步处理,否则就丢弃这个包。这种发送方式就叫作“广播(broadcasting)”。IIB财经区块链技术 有了数据包的定义、网卡的MAC地址、广播的发送方式,数据链路层就可以在 多

8、台计算机之间传送数据了。1.3.3网络层网络层的目的是两个端系统之间的数据实现透明传送。具体功能包括寻址、路由 选择、建立连接、保持连接和终止连接等。这使得位于不同地理位置网络中的两 个主机系统之间提供连接和路径选择,世界各站点访问信息的用户数大大增加。1.331网络层的由来当两台主机位于同一个子网络,可以通过广播的方式把数据包发送给本网络内所 有的计算机,让每台计算机自己判断是否为接收方。但是当两个主机不在一个子 网络,例如一个在北京,一个在纽约,这样发送信息的方式就不合理了。网络层引进了一套地址,用来判断不同的计算机是否属于同一个子网络,这套地 址叫作网络地址,也就是网址。属于同一个子网络

9、的采用广播方式发送数据包, 否则就采用路由方式发送数据包。因此每台计算机有了两种地址:MAC地址和网络地址。这两种地址之间没有任 何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是 随机组合在一起。网络地址帮助我们确定计算机所在的子网络,MAC地址则是 将数据包送到该子网络中的目标网卡。因此,必定是先处理网络地址,然后再处 理MAC地址。财经子网络子网络料6网路层1.332 IP 协议IP协议就是规定网络地址的协议。它所定义的地址,就叫作IP地址。目前的IP版本有IPv4和IPv6两种,最流行的版本是Ipv4。Ipv4有十进制和二 进制两种表示方法,用点分为四组,每一组的范

10、围是0255。如图所示,IP地 址的两种表示方法为:十进制表示为:172.16.254.1;二进制表示为:10101100.00010000.11111110.00000001。财径图丁 IP地址互联网上的每一台计算机都会拥有一个IP地址。IP地址分为两个部分,前一部 分代表网络,后一部分代表主机。但是从一个IP地址无法判断哪一段代表网络, 哪一段代表主机。当两台联网的计算机的IP地址的网络部分完全相同,说明两 台计算机位于同一个子网络。但是要从两台计算机的IP地址判断两台计算机是 否属于同一个子网络,需要用到一个表示子网络特征的参数 “子网掩码(su bnet mask)。子网掩码在形式上等

11、同于IP地址,例如IPv4版本的子网掩码 也是一个32位二进制数字,一般子网掩码地址都是255.255.255.0。根据子网掩码可以判断任意两个IP地址是否处于同一个子网络。先将两个IP地址分别和子网掩码(255.255.255.0)换算为二进制形式;然后将两个IP地址分别与子网掩码进行按位与运算;最后比较结果是否相同,相同表明两个IP地址在同 个子网络,否则不在一个子网络。RBS!zl 经区块链技术 例如IP地址分别为172.16.254.1和172.16.254.233 ,它们分别与子网掩码25 5.255.255.0按位与的运算结果都是172.16.254.0 ,这说明这两个IP地址在同

12、 个子网络。总得来说,IP协议一个作用是为每一台计算机分配IP地址,另一个作用是确定 哪些IP地址位于同一个子网络。1.333 IP数据包根据IP协议发送的数据叫作IP数据包,其中数据包包括IP地址信息。在数据链路层中,以太网协议将一组电信号构成的一个数据包叫做“帧”,帧包 含MAC地址,但没有IP地址。在网络层,不需要修改以太网的规格,直接将I P数据包放进以太网数据包的Data部分。IP数据包分为“标头”和“数据”两个部分。标头Head包括版本、长度、IP地址等信息,数据Data则是IP数据包的具体内容。财经HeadLJIm淄以于円1DataHead| Head jData图g以人网数据包

13、1.334 ARP 协议因为IP数据包是放在以太网数据包里发送的,所以在发送数据包时必须同时知 道接收方的MAC地址和IP地址。一般接收方的IP地址已知,但是MAC地址 无法直接获取。在数据链路层中提到过,一块网卡无法直接获取另一块网卡的MAC地址,如果 两台主机位于同一子网络需要根据ARP协议(Address Resolution Protoc ol,地址解析协议),通过对方的IP获得对方的MAC地址。ARP协议就是向子 网络的每一台主机发送数据包从中取出IP地址并与自身的IP地址进行比较。 如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。如果两台主机不在同一个子网络

14、,要在网络层上实现网络互连,就需要网络互联 设备一一网关(Gateway)。它又称网间连接器、协议转换器,其本质上是一个网 络通向其他网络的IP地址。假如两台主机分别在不同的子网络A和B,网络ARBS!zl 经区块链技术 中的某一主机将数据包传送到网络B中的某一主机,需要经过以下步骤:首先 网络A中的主机将数据包传送到网络A所在的网关;然后网络A所在的网关将数 据包转发给网络B所在的网关,最后网络B所在的网关将数据包转发给网络B 的那台主机。总的来说,有了 ARP协议和网关,一台主机可以把数据包发送到任意一台主机。1.3.4传输层1.341传输层的由来有了 MAC地址和IP地址就可以在互联网上

15、的任意两台主机上建立通信。但是 从互联网上发送过来的数据包到底供给哪个程序(进程)使用,需要用到传输层。传输层(Transport Layer)是最重要,最关键的一层,唯一负责总体的数据传输 和数据控制,实现了端到端的数据传输。传输层在终端用户之间提供透明的数据 传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控、分 段/重组和差错控制,保持对分段的跟踪,并且重传那些失败的分段。在传输层中,端口 (port)表示一个数据包到底供哪个程序(进程)使用,它是每一 个使用网卡的程序编号,每个数据包都发到主机的特定端口,所以不同的程序就 能取到自己所需要的数据。IIB财经区块链技术 网络层建立了主机到主机的通信,而传输层建立了端口到端口的通信。只要确定 主机和端口,就能实现程序之间的交流。因此,Unix系统把主机+端口,叫作套接字(socket)。有了它,就可以进行网络应用程序开发。1.342 UDP 协议UDP(User Datagram Protocol,用户数据报协议)是一个非

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号