
一、Internet 介绍
1、Internet 发展史
- 1957年10月和11月,前苏联先后有两颗"Sputnik"卫星上天。
- 1958年美国总统艾森豪威尔向美国国会提出建立DARPA (Defense Advanced Research Project Agency),即国防部高级研究计划署,简称ARPA。
- 1968年6月DARPA提出"资源共享计算机网络" (Resource Sharing Computer Networks),目的在于让DARPA的所有电脑互连起来,这个网络就叫做ARPAnet,即"阿帕网",是Interne的最早雏形。
- 早期的ARPAnet使用网络控制协议(Network Control Protocol,NCP),不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能
- 1973年由Kahn和Vinton Cerf两人合作为ARPAnet开发了新的互联协议。
- 1974年12月两人正式发表第一份TCP协议详细说明,但此协议在有数据包丢失时不能有效的纠正
- TCP协议分成了两个不同的协议:用来检测网络传输中差错的传输控制协议TCP,专门负责对不同网络进行互联的互联网协议IP,从此,TCP/IP协议诞生
- 1983年ARPAnet上停止使用NCP,互联网上的主机全部使用TCP/IP协议。TCP/IP协议成为Internet中的"世界语"
- 1991 万维网(www)的发明, 推动了网络的世界化
2、网络的体系结构
- 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
- 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
- 网络体系结构即指网络的层次结构和每层所使用协议的集合
- 两类非常重要的体系结构:OSI与TCP/IP
3、OSI模型
- OSI模型相关的协议已经很少使用,但模型本身非常通用
- OSI模型是一个理想化的模型,尚未有完整的实现
- OSI模型共有七层(下图)


物理层: 就是网卡, 网线
链路层: 网卡驱动 , 发送数据与接收数据
网络层: 路由器和ip地址 , 数据分组与路由
传输层: 保证数据发送的, 少数据要补发, 发错的话, 重发
会话层:理想的模型, 很少有实现
表示层: 理想的模型, 很少有实现
应用层:协议头, samba协议, ssh协议, nfs协议, tftp协议
4、TCP/IP 模型
- TCP/IP协议是Internet事实上的工业标准。
- TCP/IP 模型一共有4层

- 网络接口与物理层 : 网卡与网卡驱动
- 传输层: TCP 与UDP
- 应用层: FTP, TFTP,DNS, SMTP, Samba ,SSH
5、TCP/IP与OSI参考模型的对应关系

二、TCP/IP协议
1、TCP/IP协议介绍
TCP/IP协议,传输控制/网际协议(Transfer Control Protocol/Internet Protocol) 又称作网络通讯协议。Internet国际互联网络的基础,RFC793。一组协议,通常称它为TCP/IP协议族。四个层次:网络接口层与物理层 , 网络层、传输层、应用层
2、常用协议
- TCP(Transport Control Protocol) 传输控制协议
- IP(Internetworking Protocol)网间协议
- UDP(User Datagram Protocol)用户数据报协议
- ICMP(Internet Control Message Protocol)互联网控制信息协议
- SMTP(Simple Mail Transfer Protocol)简单邮件传输协议
- SNMP(Simple Network manage Protocol)简单网络管理协议
- HTTP(Hypertext Transfer Protocol) 超文本传输协议
- FTP(File Transfer Protocol)文件传输协议
- ARP(Address Resolution Protocol)地址解析协议
3、TCP/IP协议通信模型

- 客户方TFP程序: 应用程序 , 一个软件程序
- TCP协议 : 网络传输的准确性 , 传输控制
- ip : 路由器端通信的 , ip 地址
- 以太网驱动 : 网卡的物理地址
4、数据的封装与传递过程

每层通信时都会加上本层的包头
- 应用层 : 会加上ftp协议的头
- TCP层 : 会加上TCP层的协议,端口号
- IP 层 : 会加上源IP和目的IP
- 以太网层: 加上网卡的MAC地址
5、Linux系统中的TCP/IP结构

计算器分为软件和硬件,硬件: cpu , 内存, 硬盘, 网卡 , 显示器 , 键盘, 鼠标。软件: 操作系统,window和Linux,Linux:用户空间,用户写的软件运行的地址范围,各种应用程序的, 如 FTP , Samba, SSH;内核空间,操作系统运行的地址范围,实现了TCP/IP模型的3层(物理层,网络层, 传输层)。对于用户来说,我们只关心应用层
6、TCP协议
TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。
- 高可靠通信: TCP,数据无误,数据无丢失,数据无失序,数据无重复到达
- 不可靠通信 : UDP,没有以上4点的保证
适用情况:适合于对传输质量要求较高,以及传输大量数据的通信。在需要可靠数据传输的场合,金融,,银行, 证券 。QQ,微信等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议,全双工通面向连接的可靠的按序递交的无重复的字节流通信,把TCP理解成2根管道。

7、UDP协议
UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。适用情况:
- 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
- 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
- 适合于广播/组播式通信中。
- wechat/QQ等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
- 流媒体、直播等网络多媒体服务中通常采用UDP方式进行实时数据传输
全双工 、无连接、不可靠的数据抱通信

8、UDP和TCP比较
- 共同点:同为传输层协议
- 不同点:TCP,有连接,可靠;UDP,无连接,不保证可靠