一.网络发展
独立模式:在早期计算机之间是相互独立的,机器之间的数据只能通过软硬盘来传输,这就代表无法同时完成任务,需要前面的计算机完成各自的任务经过硬盘传递数据再完成自己的任务,效率十分低下。
网络互联:多台计算机连接在一起可以完成数据共享
局域网:计算机的数量更多了,此时需要通过交换机和路由器连接在一起
广域网:现在万物互联的情况就是广域网,能够将世界各地的计算机都连在一起
二.初识协议
协议:就是一种约定,计算机之间的传输媒介是光信号和电信号. 通过 "频率" 和 "强弱" 来表⽰ 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双⽅的数据格式.协议本质也是软件,在设计上为了更好的进⾏模块化,解耦合,也是被设计成为层状结构的。
三.TCP/IP五层(或四层)模型
应⽤层: 负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远程访问协议(Telnet)等. 我们的⽹络编程主要就是针对应⽤层.
传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到⽬标主机.
⽹络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识⼀台主机, 并通过路由表的⽅式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)⼯作在⽹路层.
数据链路层: 负责设备之间的数据帧的传送和识别. 例如⽹卡设备的驱动、帧同步(就是说从⽹线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就⾃动重发)、数据差错校验等⼯作. 有以太⽹、令牌环⽹, ⽆线LAN等标准. 交换机(Switch)⼯作在数据链路层.
物理层: 负责光/电信号的传递⽅式. ⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤, 现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。物理层的能⼒决定了最⼤传输速率、传输距离、抗⼲扰性等. 集线器(Hub)⼯作在物理层.
四.再识协议

五.网络传输基本流程
局域网通信原理(以太网为例):每个电脑的网卡都有自己的Mac地址,这个地址在该局域网中是唯一的(在⽹卡出⼚时就确定了, 不能修改. mac地址通常是唯⼀的,虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些⽹卡⽀持⽤⼾配置mac地址).发送端主机会向对应接受端主机发送信息,接受方会对比自己的Mac地址与数据中包含的是否一致,一致则会接受,不一致就丢失。
以太⽹中,任何时刻,只允许⼀台机器向⽹络中发送数据,如果有多台同时发送,会发⽣数据⼲扰,我们称之为数据碰撞,所有发送数据的主机要进⾏碰撞检测和碰撞避免,没有交换机的情况下,⼀个以太⽹就是⼀个碰撞域。
报头:就是对应协议层的结构体字段,除了报头,剩下的叫做有效载荷,所以报⽂ = 报头 + 有效载荷。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报(datagram),在链路层叫做帧(frame). 应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装。⾸部信息中包含了⼀些类似于⾸部有多⻓, 载荷(payload)有多⻓, 上层协议是什么等信息. 数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部, 根据⾸部中的 "上层协议字段" 将数据交给对应的上层协议处理.

六.跨网络传输
ip地址:IP 协议有两个版本, IPv4 和 IPv6 . 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指 IPv4。
IP 地址是在 IP 协议中, ⽤来标识⽹络中不同主机的地址;对于 IPv4 来说, IP 地址是⼀个 4 字节, 32 位的整数;我们通常也使⽤ "点分⼗进制" 的字符串表⽰ IP 地址, 例如 192.168.0.1 ; ⽤点分割的每⼀个数字表⽰⼀个字节, 范围是 0 - 255

目的IP的意义:主机发送数据到达网络层时发现目标IP不是同一局域网的,所以会把数据发送到路由器,由路由器转发到目标IP的主机。然后结合封装与解包,体现路由器解包和重新封装的特点,完整跨网发送数据的流程图: