网络协议总的分为4层:
链路层一般对应的就是网卡,设备驱动和网线之类的
网络层是基于链路层上面进行处理数据也叫互联网层,包含IP协议,ICMP(互联网控制报文)协议和IGMP(Internet组管理)协议
运输层为两个主机提供端到端的通信(应用程序)也就是TCP和UDP协议
应用层负责处理特定功能的应用处理程序比如邮件传输协议(SMTP)文件传输协议(FTP)等
各层次的处理顺序图
网络连接
各个主机之间通过路由器进行连接转发数据, 通过路由器将以太网与令牌环网中的主机连接)
路由器是是在网络层上对各个主机或网络进行互联(TCP/IP倾向)
网桥是在数据链路层上对各个局域网进行互联
各层之间的通信
应用层-运输层:使用端到端协议(End-to-end)
网络层: 逐跳协议(Hop-to-hop)
网络层IP不负责数据是否有接收到。他只是尽可能的快的吧数据发送出去
运输层的TCP协议负责提供可靠性
各层次不同的协议
ICMP和IGMP可以直接连接IP协议
ICMP:IP的附属协议。用来与其他主机或路由器交换错误报文或其他重要信息
IGMP: 用来把1个UDP数据报多播到多个主机上
ARP和RARP: 地址解析协议和逆地址解析协议,将IP地址与网络接口层地址互相转换
五类IP地址
对应的地址范围
除了这5类地址还有另外三类地址:单播地址(单个主机)、广播主机(目的端为特定网络上的所有主机)、多播地址(目的端为同一组的所有主机)
主机号和网络号全0或全1的地址
各层协议封装
每一层的协议对接收的数据都要增加一些首部信息或尾部信息以便目的端主机或路由能够正确识别对应的协议
TCP传给IP的叫TCP段,IP传给网络接口的叫IP数据报,网络接口传输的比特流叫做帧
以太网数据帧的长度必须在46~1500字节之间
数据进入协议栈的封装过程
TCP和UDP数据报首部会放入应用程序的标识符长度为2字节(16bit)
源端口号和目的地端口号也会写入进去
IP数据报的首部需要传入1个长度为1字节(8bit)的数值,称作协议域。
1:ICMP协议 00000001
2:IGMP协议 00000010
6:TCP协议 00000110
17:UDP协议 00010001
以太网帧的首部也会加上2字节(16bit)的首部
分用(解析)
ICMP和IGMP是封装在IP数据报中
ARP和RARP也是类似
客户-服务器模型
两种: 重复型和并发型
重复型:
缺点是单线程。请求一次就要处理完 其他需要请求的数据得排队
并发型
收到请求后建立线程、进程或者其他啥的进行处理。同时继续接受新的请求,然后在创建1个新的线程、进程或其他的。
优点。并发处理数据,无需等待
一般来说TCP是并发,UDP是重复
端口
256~1023一般UNIX系统占用
标准的简单服务
应用编程接口
编程接口有socket和TLI(运输层接口)
该书所有的例子的网络结构
大多数的例子都运行在下面四个系统中。图中所有的 I P地址属于B类地址,网络号为 1 4 0 . 2 5 2。所有的主机名属于 .tuc.noao.edu这个域( noao代表National Optical Astronomy Observatories, tuc代表Tu c s o n) 。例如,右下方的系统有一个完整的名字: svr4.tuc.noao.edu,其I P地址是: 1 4 0 . 2 5 2 . 1 3 . 3 4。每个方框上方的名称是该主机运行的操作系统。这一组系统和网络上的主机及路由器运行于不同的 T C P / I P实现。