开发者学堂课程【Go语言核心编程 - 面向对象、文件、单元测试、反射、TCP编程:网络编程的基础知识】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9776
网络编程的基础知识
内容介绍:
一、网线,网卡,无线网卡
二、协议(tcp/ip)
三、OSI 与 Tcp/ip 参考模型(推荐 tcp/ip 协议3卷)
四、深入理解:qq 间相互通讯的案例
五、追踪
一、网线,网卡,无线网卡
计算机间要相互通讯,必须要求网线,网卡或者无线网卡
二、协议(tcp/ip)
协议是计算机与计算机之间在相互进行交流时认同的并且要用到的协议
1.TCP/IP
TCP/IP(Transmission Control Protocol/internet Protocol)的简写
中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是 Internet 最基本的协议、 Internet 国际互联网络的基础,简单地说,就是由网络层的 IP 协议和传输层的 TCP 协议组成的。
2.具体讲解
比如,张三(A)和李四(B)要进行交流的时候,需要通过语言(协议)来进行
①如果A与B都是中国人,需要通过中文(具体协议,http,ftp,https,smtp...自定义协议)交流
通用的协议比如 http,ftp,https,smtp,是大家都认同的
自定义协议就是一般的结构体
②如果 A 是越南人,B 是中国人,则需要协议进行交流
3.自定义协议
A 与 B 发送消息:
Type mes stract{
//消息
Id int
//id号
con Strong
Sendtime string
//发送的时间
Getter map [strring]stiring
//接受者
}
三、OSI 与 Tcp/ip 参考模型(推荐 tcp/ip 协议3卷)
1.Osi 模型(理论)
在网络世界里面有一种模型叫 Osi 模型(理论),
理论上有七层模型分别为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
2. Tcp/ip 模型
实际上只有五层分别为应用层、传输层、网络层、链路层
四、深入理解:qq 间相互通讯的案例
qq 间相互通讯的案例深入理解如果发送一个 hello 是怎样传送到对方的
1.人物背景
张三的电脑中有一个好友在美国叫李四
他们都用 QQ
张三和李四都已上线
张三在中国,李四在美国,他们相互交流
2.张三(发送者)程序
张三电脑里有 TCP/IP 协议,
第一层叫应用层,第二层叫传输层,第三层叫IP层,第四层叫链路层
还有硬件设备网卡
①张三发送 hello
②hello 经过应用层变为 App| hello,作用是表示程序 App
③经过传输层 TCP头|App| hello,作用是准确的把这个文件包传送到李四方
④经过 IP 层,IP 头|TCP 头|App| hello,作用是记录自己的 IP 地址和对方的 IP 地址
⑤经过链路层帧头|IP 头|TCP 头|App| hello|帧尾
⑤最后变成了一个二进制,数据在此容易被截获,数据会交给网卡,网卡会给网关,再送到路由器
3.李四(接收者)程序
进入李四的网关,网关出去会有很多的路由器来进行接收
在李四电脑进行反向处理
①先进入链路层去掉帧头和帧尾 IP 头|TCP 头|App| hello
②再进入 IP 层 TCP头|App| hello
③传输层 App| hello
④应用层 hello
五、追踪
在 windows 系统里面,有专门的指令 ,可以看一个数据包完整的路程和流向
1.演示
追一个包
tracert
//trace 是追踪的意思,rt 是路由的简称
tracert www.baidu.com
①请求超时
有些路由器会阻止返回信息,会显示请求超时,表示不返回这个包
通过最多10 个跃点跟踪
一般浏览一个网站就需要经过十多个网站
最终要到 www.shifem.com [111.1].100.91
请求超时说明不反应,不提供信息
②追踪结果不相同
每一次追踪的路由都是不一样的,这是一种非常有意思的现象
例如,一个人写了一个代码,类似于“我是服务器”,所以所有的包都来找他,但是他是假的网关,结果所有的包都出不去了
③完整路径追踪
下图是一个完整路径的追踪