《TCP/IP详解 卷1:协议》读书笔记(粗读)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/van_brilliant/article/details/79673424
第一章:概述


  不同网络协议有不同的分层,TCP/IP协议族通常被分为四层,由下到上分别是:
1、链路层:硬件设备驱动程序、网卡
2、网络层:IP协议等,只负责传输,不可靠
3、运输层:TCP、UDP协议,采取超时重发、确认分组等机制,可靠传输
4、应用层:HTTP、FTP等协议,负责处理用户程序细节


连接网络:
1、网络层:用IP路由器,以前也称网关(现在网关指应用层网关,连接两个协议族,为某个特定程序服务)。
2、链路层:用网桥。


封装:
应用程序用TCP传送数据时,数据逐层送入网络,每一层都要增加一些首部或尾部信息,上层网络通过这些信息进行标识。通过以太网传输的比特流称作帧(Frame)。帧的长度必须在46~1500字节之间。


分用:
主机收到一个以太网数据帧时,数据由底层向上升,检查首部以确定上层协议,然后去掉各层协议加上的首部。


端口号:
TCP和UDP通过16bit的端口号识别应用程序:
1、服务器一般通过知名端口号识别:FTP/21、SSH/22、Telnet/23、Http/80、Https/443。grep telnet /etc/services可查看程序端口号。
2、客户端口号又称为临时端口号,客户程序运行时才存在。
3、保留端口号,Unix系统中有。


RFC:
所有Internet的正式标准都以RFC文档出版。


标准简单服务:
echo、discard、daytime等简单服务,TCP和UDP都提供,并且选择相同的端口号。


应用编程接口:
使用TCP/IP的应用程序通常采用两种编程接口:socket(Berkeley socket)和TLI。






第二章:链路层


  链路层的主要作用:
1、为IP模块发送和接受IP数据报。
2、为ARP模块发送ARP请求ARP请求和接收ARP应答。
3、为RARP模块发送RARP请求RARP请求和接收RARP应答。


TCP/IP支持多种不同的链路层协议,这取决于网络所用的硬件(如以太网、令牌环网等)。


IP封装方式:
1、以太网:802封装、尾部封装
2、串行线路:SLIP、PPP


环回接口:127.0.0.1/localhost,由环回驱动程序处理


MTU:最大传输单元。以太网为1500字节,IP层的数据若超过MTU则需要进行分片。netstat -in命令可查看MTU。


路径MTU:即两台位于不同网络的主机的最小MTU








第三章:IP:网络协议


  TCP、UDP、ICMP、IGMP都以IP数据报格式传输。IP协议不可靠。无连接。
不可靠:IP协议不保证IP数据报能成功到达目的地。
无连接:IP协议不维护后续数据报的状态信息,每个数据报相互独立。也就是说两个数据报到达的先后次序不保证。


IP首部:
共20字节,包括:
0~31bit:4位版本(IPV4、IPV6)、4位首部长度、8位服务类型(TOS)、16位总长度
32~63bit:16位标识、3位标志、13位片偏移64~95bit:8位生存时间(TTL)、8位协议、16位首部检验和
64~95bit:8位生存时间(TTL)、8位协议、16位首部检验和
32bit源IP地址
32bit目标IP地址


TOS:最小时延、最大吞吐量、最高可靠性、最小费用。


IP路由:
路由表:每一项包括目的IP地址、下一站路由器IP地址、标志、网络接口。route -n命令可查看路由表。
搜索路由表的步骤:1、搜索匹配的主机地址;2、搜索匹配的网络地址;3、搜索默认表项。


子网编址:把主机号分为子网号和主机号(由子网掩码决定)。


主机接口信息:ifconfig -a命令或netstat -in命令。








第四章:ARP:地址解析


  ARP为IP地址到对应的硬件地址之间提供动态映射。链路层用这些硬件地址进行寻地。


网络访问过程(以FTP为例):
1、FTP敲入域名,DNS解析成IP地址(或者读取hosts文件)。
2、应用层FTP客户端请求TCP用上一步得到的IP地址建立连接。
3、TCP向远端主机发送一个连接请求,即用上述IP地址发送一份IP数据报。
4、如果主机在本地网络上那么直接到达。如果在远程网络上那么通过IP选路函数确定下一站路由器地址。
5、如果是一个以太网,那么发送端主机必须把32bit的IP地址转换成48bit的以太网地址。这就是ARP的功能。
6、ARP给以太网的每个主机广播ARP请求,请求数据帧包含目的主机的IP地址,含义为“如果你是此IP地址拥有者请回答硬件地址”。
7、目的主机应答IP地址以及对应的硬件地址。
8、收到ARP应答。
9、发送IP数据报到目的主机。






第十七章:TCP:传输控制协议



  TCP提供一种面向连接的、可靠的字节流服务。


面向连接指的是两个TCP应用必须先建立一个TCP连接。一个TCP连接只有两方进行通信。


TCP采取以下机制提供可靠性:
1、数据被分割成合适的数据块。
2、TCP发出一个段后启动定时器,等待目的端确认。如果不能确认则重发。
3、TCP收到一个段后发送一个确认。
4、TCP保持首部和数据的检验和,如果有差错则丢弃报文段。
5、由于IP数据报可能会失序,TCP对收到的数据报进行重新排序再交给应用层。
6、由于IP数据报可能会重复,TCP会丢弃重复的数据报。
7、提供流量控制,连接的每一方都有固定大小的缓冲空间,防止较快主机致使较慢主机缓冲区溢出。


TCP报文:
被封装在一个IP数据报中:开始为20字节的IP首部,接下来是20字节的TCP首部,最后是TCP数据。


TCP首部:
共20字节,包括:
0~31bit:16位源端口号、16位目的端口号。
32~63bit:32位序号。
64~95bit:32位确认序号。
96~127bit:4位首部长度,保留6位,6位标志比特,16位窗口大小。

128~159bit:16位检验和、16位紧急指针。


(2018年3月22日晚~2018年23日晚22:25)





猜你喜欢

转载自blog.csdn.net/van_brilliant/article/details/79673424