您现在的位置是:首页 > 学习笔记 > 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双方欲传输文件,有如下规定:
- 第一次,传输文件名,接收方接收到文件名,应答OK给传输方;
- 第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;
- 第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。
这种仅在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的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。
微信扫一扫~
支付宝扫一扫~
很赞哦! ()
上一篇:Go并发
相关文章
随机图文
go操作数据库之gorm
gorm的简单Demo的实例数据格式
1.数组 1.1数组定义 1.2数组赋值 1.3数组初始化 1.4 数组冒泡排序 1.5数组作为函数参数 2.切片 2.1切片定义 2.2切片定义方式 2.3切片截取 2.4 copy函数的使用 2.5切片作为函数参数 3.字符串处理 4.字符串转化 5.Map 5.1Map初始化 5.2 打印输出 6.结构体 6.1顺序初始化 6.2结构体比较与赋值 6.3结构体数组 6.4结构体作为函数参数 7.指针 7.1指针变量 7.2new函数 7.3指针做函数Git常用基本用法
Git请求合并说明如今公司很多新项目都采取merge request方式来进行code review、非阻塞上线部署,因此掌握merge request很有必要,步骤如下: 1、现在本地用创建一个本地分支,git面向对象
1.匿名字段 1.1匿名字段创建与初始化 1.2同名字段 1.3指针类型匿名字段 2.方法 2.1基本方法创建 2.2给结构体添加方法 2.3指针变量的方法值 2.4方法继承 2.5方法重写 3.接口 3.1接口实现 3.2多态 3.3接口实例 3.4接口继承与转换 3.5空接口