1.1 计算机发展史
1.1.1最早的广域网
双方或多方之间,电路交换建立电路连接的网络
1.1.2 电路交换***点
1 建立链接 -.> 使用链接 -> 释放链接
2 物理通路被通信双方独占
1.1.3 计算机网络要求
ARPA(the Advanced Researc Projects Agency)美国高级研究计划署
对计算机网络要求:
- 不是打电话
- 结构简单,可靠的传输数据
- 连接不同的计算机
- 所有的网络节点同等重要
- 有多的路由
1.1.4 分组交换
每个分组由首部和数据段组成
1.1.5 交换方式
存储转发
节点收到分组,暂存,检测其首部,按首部地址,发到适合的节点
特点:
- 传输单位为分组
- 独立选择转发路由
- 逐段占用,动态分配传输宽带
1.1.6 因特网发展史
ARPANET向因特网发展
TCP/IP协议成为ARPANET的标志协议
1.1.6.1 三级结构的因特网
NSFNET:国家科学基金网
主干网
地区网
校园网
1.1.6.2 多级结构的因特网
NSFNET被商用因特网主干网代替
1.2 TCP/IP协议简介
ARPANet 指定 TCP/IP 协议(族)
应用领域:
为了减少协议的复杂性,都采用分层组织
下一层服务上一层
每层的实现细节对上层屏蔽
1.2.1 分层结构
应用层:
应用程序间沟通
例如:FTP,Telnet,HTTP
传输层:
进程间的数据传输服务
负责传输数据,提供应用程序到端的逻辑通信
例如:TCP,UDP
网络层:
基本的数据封包传送功能
每个数据包传到目的主机
例如:IP,ICMP
链路层:
数据帧的发送和接收
每次完成自己的任务,最终完成数据收发
1.2.2 IP协议简介
实现一个相连的网络系统从源文件到目的地传输数据包
特点:
不可靠:不能保证IP数据包送到目的地
无连接:IP不维护数据包的状态信息
IP数据包:发送IP地址(源地址)和接收IP地址(目的地址)
1.2.3 TCP协议简介
TCP :
面向连接,可靠的传输层通信协议
功能:
不同主机上的进程间的通信
特点:
- 建立链接 -> 使用链接 -> 释放链接(虚电路)
- TCP数据包:序号,确定序号
- 对包进行排序并检错,损坏的包被重传
服务对象:
高度可靠性且面向连接的服务
如:HTTP,FTP,SMTP
1.2.4 UDP协议简介
UDP是面向无连接的传输层通信协议
功能:
不同主机的进程间通信
特点:
- 发数据不用建立链接
- 不对数据包的顺序进行检查
- 没有错误检测和重传机制
服务对象:
查询——应答
NFC,NTP,DNS
1.3 MAC地址 IP地址 Netmask 端口
1.3.1 网卡
网络适配器,网络接口卡(NIC)
不同计算机之间连接,完成数据通信
1.3.2 mac地址
标识网络设备,且理论全球唯一
组成:
以太网的MAC地址是48bit的值
1.3.3 IP地址
Internet上的主机编址方式,网际协议地址
1.3.3.1 IP地址组成
32bit,由{网络ID,主机ID}组成
子网ID:
IP地址中由子网掩码 1 覆盖的连续位
主机ID:
IP地址中由子网掩码 0 覆盖的连续位
1.3.3.2 IP地址特点
子网ID不同的网络不能直接通信,需要路由器转发
主机ID全为 0 的IP地址为网段地址
主机ID全为 1 的IP地址为网段的广播地址
1.3.3.3 IP地址分类
A类地址:
8bit子网ID,第一位 0
B类地址:
16bit子网ID,前二位 10
C类地址:
24bit子网ID,前三位 110
D类地址:
前四位 1110 ,多播地址
E类地址:
前五位11110,保留
A,B,C三类地址为常用
公用IP(直接连Internet)
经InterNIC统一规划IP
私有IP(不可直接连Internet)
局域网络的主机联机规划
1.3.3.4 回环IP地址
127.0.0.1为回环地址
功能:
测试本机的网络配置,ping通127.0.0.1,说明本机的网卡和IP协议安装没有问题
注意:
127.0.0.1 ~ 127.255.255.254 中任何地址都能回环到本地主机
不属于任何地址类,本地虚拟地址
1.3.3.5 IP地址设置
ifconfig eth0 192.168.1.1
自动获取网络参数(DHCP)
重新获取IP:
sudo dhclient
拨号取得:
向ISP申请注册,直接拨到ISP,ISP自动设置电脑的网络参数
sudo ppoeconf sudo pon dsl-provider #拨号 ADSL sudo poff #断开 ADSL
1.3.4 子网掩码
subnet mask 又名:网络掩码,地址掩码,32bit 由 1 和 0 连续组成
作用:
指明IP地址的子网和主机号
特点:
结合IP地址一起使用
IP地址由子网掩码 1 连续覆盖的为子网ID ,其余为主机ID
子网掩码的表现形式:
192.168.220.0 255.255.255.0
192.168.220.0 24
手动配置:
ifconfig eth0 10.0.31.96 netmask 255.255.255.0
1.3.5 端口
1.3.5.1 端口概叙
TCP/IP协议采用 端口标识通信的进程
区分一个系统里多个进程
特点:
- 同一个端口,在不同系统对应不同的进程
- 同一个端口,一个端口对应一个进程
- 传输层送到的数据被该端口的进程接收,该进程送到传输层的数据通过该端口送出
1.3.5.2 端口号
端口号(port)标识运行的网络程序
特点:
- 端口号是无符号短整型的类型
- 每个端口有一个端口号
- TCP,UDP维护独自的端口
- 网络应用程序,至少占一个以上的端口号。
知名端口(1 ~ 1023):
互联网数字分配机构(IANA)根据用户需要进行统一分配
例:FTP——21,HTTP——80
服务器使用范围,强制使用,root权限
动态端口(1024 ~ 65535):
应用程序的使用范围
注意:
端口号类似于进程号,同一个时刻标志一个进程,可重复使用
1.4 数据包的组装,拆解
1.4.1 数据包在各个层之间的传输
1.4.2 链接层封包格式
注意:
IEEE802/802.3 封装用在无线
以太网封装在有线局域网
1.4.3 网络层,传输层封包格式
1.5 网络应用程序开发流程
1.5.1 TCP 面向连接
数据传输经过建立连接,使用连接,终止连接
连接是个管道,收发顺序和内容一致
保证数据传输的可靠性
1.5.2 UDP 面向无连接
每个分组带目的地址
不保证分组的前后顺序
不进行分组的错误的恢复和重传
不保证数据传输的可靠性
面向连接和无连接,一般采用C/S架构client向server发出请求,server接收后提供相应的服务
1.5.3 C/S架构示例 (面向连接)
server工作过程
打开通信服务并告知本机主机,愿意用个特定的端口接收客户得请求等待客户请求达到端口,接收客户请求,并发出应答信号,激活新的线程处理客户得请求,服务完成后,关闭新线程与客户得通信链路
client工作过程
打开通信服务并连接服务器的端口,向服务器发出服务请求,等待并接收应答,根据需要继续发起请求,请求结束后关闭通信服务并终止