TCP/IP协议学习笔记
计算机网络基础知识复习汇总:计算机网络基础知识复习
HTTP协议的解析:剖析 HTTP 协议
一个系列的解析文章:
- TCP/IP详解学习笔记(1)-- 概述
- TCP/IP详解学习笔记(2)-- 数据链路层
- TCP/IP详解学习笔记(3)-- IP:网际协议
- TCP/IP详解学习笔记(4)-- ARP 和 RARP
- TCP/IP详解学习笔记(5)-- ICMP:internet 控制报文协议
- TCP/IP详解学习笔记(6)-- IP选路
- TCP/IP详解学习笔记(7)-- 初识运输层
- TCP/IP详解学习笔记(8)-- UDP:用户数据报协议
- TCP/IP详解学习笔记(9)-- 广播,多播,IGMP:网际组管理协议
- TCP/IP详解学习笔记(10)-- DNS:域名系统
- TCP/IP详解学习笔记(11)-- TFTP:简单文本传输协议,BOOTP:引导程序协议
- TCP/IP详解学习笔记(12)-- TCP:传输控制协议
- TCP/IP详解学习笔记(13)-- TCP连接的建立与终止
- TCP/IP详解学习笔记(14)-- TCP可靠传输的实现
- TCP/IP详解学习笔记(15)-- TCP的流量控制和拥塞控制
1、计算机的网络体系
- 网络接口层:对应OSI物理层和数据链路层并实现与他们相同的功能。其中包括LAN和WAN的技术细节,也称为主机到网络层。
- LAN:IEEE802.2/3 IEEE802.5 FDDI
- WAN:HDLC SLIP PPP FrameRelay ATM
- 互联网络层:运送数据包,将数据从任何相连的网络送到目的地,而不在乎走的是那个路径或网络。管理这一层的特定协议称为互联网络协议(IP)。最佳路径选定和数据包交换都发生在着一层。实现的是不同网络连接组成更大网络的问题。
- 运输层:主要负责处理有关服务质量等事项,如可靠度、流量控制和错误校正。该层可以提供不同服务质量、不同可靠性保证的传输服务,并且协议发送端和目标端的传输速度差异。这一层也称为主机到主机层。主要解决如何区分不同应用程序的问题,端口号。
- 应用层:包括会话层和表示层的功能,用来建立应用层来处理高层协议、有关表达、编码和会话控制。TCP/IP将所有应用程序有关的内容都归为这一层,并保证为下层适当地将数据数据封装成数据包。大部分TCP/IP实现都会提供以下通用程序:
-
- Telnet远程登陆,端口号21:通过链接目标计算机的这一端口,得到验证后可以远程控制管理目标计算机。但是不够安全,现在基本上都采用SSH来进行远程登录
- FTP文件传输协议,端口号23:用于上传下载
- SMTP简单邮件传送协议,端口号25
- SNMP简单网络管理协议
- DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
- HTTP超文本传输协议,端口号80:通过http实现网络上的超文本的传输
2、TCP/IP的特点
- TCP/IP不是一个简单的协议,而是一组小的、专业化协议,包括TCP、IP、UDP、ARP、ICMP以及其他的一些被称为子协议的协议。
- TCP/IP是一种因特网标准,最大的优势是其具有很好的可路由性。
- TCP/IP可以跨越多个网段的协议,由于其携带了网络层的信息和编址信息,这些信息可由路由器理解。
- IP数据包的最长不超过65535个字节,最小不小于20个字节
- IP协议是一种不可靠、无连接的协议,意味着它不保证数据的可靠传输。TCP/IP协议群中更高层协议可使用IP信息确保数据包按正确的地址进行传输。注意到IP数据报并不包含一个校验和部件,IP数据报报头校验和仅仅验证IP报头中的路由信息的完整性。如果当数据包被接收时伴随信息的校验和值不正确,则数据包将被认为已经破坏并被抛弃,同时,一个新的数据包将被发送。
- IP层是点到点的连接,即一台主机与另一台主机之间的连接
- 传输层则是端到端的连接,即一台主机上的一个应用程序到另一台主机上的对应应用程序之间的连接
3、协议的三要素
- 语法:传输数据的格式(IP数据报的报头20字节)
- 语义:每个字段的值表示什么意思
- 时序:
4、传输层协议
- TCP:Transmission Control Protocol,传输控制协议,提供的是可靠的、面向连接的协议,传输效率低
- Telnet远程登陆,端口号21:通过链接目标计算机的这一端口,得到验证后可以远程控制管理目标计算机。但是不够安全,现在基本上都采用SSH来进行远程登录
- FTP文件传输协议,端口号23:用于上传下载
- SMTP简单邮件传送协议,端口号25
- DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
- HTTP超文本传输协议,端口号80:通过http实现网络上的超文本的传输
- UDP:User Datagram Protocol,用户数据报协议,提供的是不可靠的、无连接的服务,传输效率高
- TFTP简单文件传输协议,端口号69
- DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
- NTP网络时间协议,端口号123
- RPC远程过程调用,端口号111
- QQ 端口号8000
5、TCP建立连接三次握手
- SYN表示请求建立连接标志位,ACK是确认标志位
- ACK的值应该是请求数据包中的seq+1
- 应用:TCP半连接攻击
6、TCP断开连接四次握手
- FIN表示断开连接的标志位,为1表
- 示请求断开连接
7、流量控制和差错控制
- TCP的流量控制通过滑动窗口来控制,UDP没有流量控制
- TCP的差错校验通过序号、ACK确认以及各种标志位的识别来进行差错校验,UDP只有校验和来提供差错校验,需要上层协议来提供差错校验,eg:TFTP
8、ARP协议:地址解析协议
ARP协议是一个互联网络层协议,它获取主机或节点的MAC地址(物理地址)并创建一个本地数据库以将MAC地址映射到主机IP(逻辑)地址上。ARP协议与IP协议紧密协作,因为IP在指导发送数据到目标主机之前必须具有目标主机的物理地址,为使ARP更加有效,计算机在一个缓冲区保存已经知道的IP-MAC地址映射表,这样就无需广播冗余请求。arp -a命令进行查询
9、ICMP协议:网络控制数据包协议
ICMP协议位于TCP/IP模型互联网络层的IP协议和TCP协议之间,ICMP消息通过IP数据报传送,它不提供错误控制服务,被用来发送错误和控制信息。ICMP常用语诊断实用程序中,如ping命令和Tracert命令。可以用ICMP协议来检测双向通路的
ICMP协议定义了很多信息类型:
-
- 目的地不可达
- TTL超时(大多128跳)
- 信息请求
- 信息应答
- 地址请求
- 地址应答