您现在的位置是:首页 > 学习笔记 > Go语言Go语言

Golang之网络编程

冰山2019-02-25【Go语言】人已围观

简介1.协议
1.1协议
1.2典型协议
2.层与协议
2.1分层方式
3.通信过程
4.Socket编程
5.网络应用程序设计模式
5.1模式介绍
5.2优缺点
6.TCP通信 C/S模型通信
7.UDP通信 C/S模型通信
8.TCP通信并发C/S模型通信
9.UDP通信并发C/S模型通信
10.UDP与TCP的差异

1.网络概述

 

1.1协议


从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。

假设,A、B双方欲传输文件,有如下规定:
  1. 第一次,传输文件名,接收方接收到文件名,应答OK给传输方;
  2. 第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;
  3. 第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。
由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数据传输规则。双方都按此规则发送、接收数据。A、B之间达成的这个相互遵守的规则即为协议。
这种仅在A、B之间被遵守的协议称之为原始协议。

当此协议被更多的人采用,不断的增加、改进、维护、完善。最终形成一个稳定的、完整的文件传输协议,被广泛应用于各种文件传输过程中,该协议就成为一个标准协议,最早的ftp协议就是由此衍生而来。
 

1.2典型协议


传输层 常见协议有TCP/UDP协议。

TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP用户数据报协议(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

应用层 常见的协议有HTTP协议,FTP协议。

HTTP超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议
FTP文件传输协议(File Transfer Protocol)。

网络层 常见协议有IP协议、ICMP协议、IGMP协议。

IP协议是因特网互联协议(Internet Protocol)。
ICMP协议是Internet控制报文协议(Internet Control Message Protocol)它是TCP/IP协议族的一个子协议,用于在IP主机路由器之间传递控制消息。
IGMP协议是 Internet 组管理协议(Internet Group Management Protocol),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。

网络接口层 常见协议有ARP协议、RARP协议。

ARP协议是正向地址解析协议(Address Resolution Protocol),通过已知的IP,寻找对应主机的MAC地址
RARP是反向地址转换协议,通过MAC地址确定IP地址。
 

2.分层模型

 

2.1分层方式



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



1)物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换),这一层的数据叫做比特。

2)数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的115200、8、N、1。

3)网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。

 1/7    1 2 3 4 5 6 下一页 尾页

  • 微信扫一扫~
  • 支付宝扫一扫~

很赞哦! ()

上一篇:Go并发

下一篇:微服务(microservices)

相关文章

文章评论

本站推荐