1.TCP/IP不是协议,而是协议族的总称。可分为四层结构,分别为:(1) 应用层:包含高层协议如FTP、HTTP、TELNET等
(2) 传输层:TCP、UDP处于该层
(3) 网络层:IP协议位于该层,负责对数据加上IP地址和其他的数据,以确定传输的目标
(4) 数据链路层:为数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备
2. 发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解析,最后拿到需要的数据。
3. IP地址一般为:网络号+主机号,域名系统的作用是将主机名转换为IP地址的服务。RFC是TCP/IP的标准文档,应用接口一般包括socket和TLI。
4. 数据链路层的目的:
(1) 为IP模块发送和接收IP数据
(2) 为ARP模块发送ARP请求和接收ARP应答
(3) 为RARP模块发送RARP请求和接收RARP应答
其中ARP为地址解析协议,即将IP地址解析为MAC地址
5. PPP是点对点协议,提供了了一种低速接入的解决方案。
6. MTU是最大传输单元,如果IP数据报过大,则要进行分片,使得每片都小于MTU。netstat -in命令可以打印MTU的结果。
7. 环回接口(LOOKBACK),即127.0.0.1尝试自己的机器服务器好使不好使。
(1) 传给环回地址的任何数据均作为IP输入
(2) 传给广播地址或多播地址的数据报复制一份到环回接口,然后送到以太网上
(3) 任何传给主机IP地址的数据均送到环回接口
8. IP协议为不可靠协议,其中的字段TTL,即8位的生存时间,数据包在穿过多少个路由后才会被抛弃,每经过一个路由,TTL减一,当为0时则被抛弃。
路由器和主机将会用如下的方式处理一个IP数据包
(1) TTL一到0,IP包自动抛弃
(2) 搜索路由表,优先搜索匹配主机,能找到和IP地址完全一致的目标主机,则向其发包
(3) 搜索路由表,如匹配主机失败,则匹配同子网的路由器,如找到,将包发给路由器
(4) 搜索路由表,若匹配同子网路由器失败,则匹配同网号路由器,若找到,将包发给路由器
(5) 搜索路由表,如果以上都失败,则搜索默认路由,如存在,则发包
(6) 若都失败,则丢包
9. 子网寻址:可将IP地址细分为网络号+子网号+主机号,如210.30.109.134中210.30为网络号,109为子网号
134为主机号,对应的子网掩码为255.255.255.0。
10. ICMP(Internet Control Message Protocol) 网络控制报文协议,当IP数据传送发生错误时,ICMP会将错误信息封包,然后传送回主机。ICMP报文在特殊情况下,不产生错误报文,因为要防止产生ICMP报文的无线传播。
ICMP有以下两种功能:
(1) 查询报文:ping查询,子网掩码查询,时间戳查询
(2) 差错报文:产生在数据传送,发生错误时
ping利用ICMP协议包侦测另一个主机是否可达,给出了传送的时间和TTL的数据,可查看主机到目的主机之间的路由信息,但不能完全记录。
traceroute用来侦测主机到目的主机之间所经路由情况,原理之一是发送的端口号>30000,因此到达目的主机时,目的主机只能发送一个端口不可达的ICMP数据报给主机
11. 路由器的5个标志(静态IP选路):
U:可使用
G:路由到一个网关,无该标志,说明目标是直接相连的
H:路由到一个主机,无该标识,说明目标是一个网络
D:路由为重定向报文创建的
M:路由已被重定向报文修改
静态IP选路的方式:
(1) 首先用IP地址匹配带H标志的IP地址(H)
(2) 若(1)失败,则匹配网络地址(G)
(3) 若(2)失败,则发送到默认网关
12. route add命令用于手动添加路由
当IP包在某路由器中发现没有路由可走,则路由器会给源主机发送“主机/网络不可传”的ICMP包来报错。
IP重定向报文:IP包在某地方转向时,会给发送IP报的源主机一个ICMP重定向报文,源主机将更新自己的路由表,因此路由表将越来越完善,数据转发速度也将越来越快。
注意:重定向报文只能由路由器发出,重定向报文为主机所用,而非路由所用
13. 动态路由协议:只用于相邻路由之间相互通信,动态选路在系统核心网外部进行,只是用一些选路的策略影响路由表,常用到的方法是RIP(选路信息协议)与OSPF(开放最短路径优先协议)。
14. UDP协议
端口号:UDP协议必须通过某个标志用以区分不同的程序所需要的数据包
检验和:发送端进行检验和
UDP长度:可以很长,但需要分片。
IP头里,16bit识别号唯一记录了一个IP包的ID,具有同一个ID的IP片将会被重组,13bit片偏移则记录了某IP片相对整个包的位置,中间的3bit标志着该分片是否还有新的分片。
目标主机的处理速度赶不上数据接收的速度时,主机将发出“我受不了了”的ICMP报文。
15. UDP服务器的设计:
(1) 关于客户端和IP地址:服务器必须有根据客户IP地址和端口判断数据包是否合法的能力
(2) 关于目的地址:服务器必须要有过滤广播地址的能力
(3) 关于数据输入:服务器的每一个端口号都会和一块输入缓冲区对应,进来的输入根据先来后到的原则等待服务器处理,所以难免缓冲区溢出,UDP可能被丢弃,而应用服务器本身并不知道这个问题。
(4) 服务器应把自己绑定到某一网络接口的某端口上
16. 单播、广播域多播
单播:对特定主机进行数据传送,数据链路层给出的数据头里是非常具体的地址
广播:针对某一网络上的所有主机发送数据包
多播:给一组特定的主机发送数据,多播租的IP地址244.0.0.0-239.255.255.255
17. TCP保证可靠性的原因:
(1) 应用数据被分割成TCP认为最合适发送的数据块
(2) 当TCP发出一个报文段后,会启动一个定时器,等待目的端确认收到这个报文段,如果不及时收到一个确认,将重发这个报文段,即超时重传
(3) 当TCP收到发自TCP连接另一端的数据,将发送一个确认
(4) TCP将保持它首部和尾部的检验和,目的是检验数据包在传输过程中的任何变化
(5) 提供流量监控
18. TCP发送数据过程:
(1) 双方建立连接
(2) 发送方向接收方发送TCP数据包,然后等待对方确认TCP数据报,如果没有就重新发,如果有,则发送下一个数据报。
(3) 接收方等待发送方的数据报,如果得到数据报并检验无误,就发送ACK确认,并等待下一个数据报的到来
(4) 中止链接
19. TCP建立连接的三次握手:
(1) 客户端先向服务器申请打开某一个端口
(2) 服务器发回一个ACK报文通知客户端请求收到
(3) 客户端收到报文后,再次向服务器端发送确认报文
20. 结束连接:
TCP的链接为全双工,因此,必须关闭穿和送两个方向上的连接:
(1) 客户端-->服务器,发送FIN为1的TCP报文
(2) 服务器-->客户端,返回确认ACK报文,并发送FIN报文
(3) 客户端-->服务器端,回复ACK报文
04-26
04-26
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交