ARP寻址
:主机先建立ip与mac地址列表,源主机先在列表寻找对应的mac,若没找到就发送arp数据到各个主机,目的主机响应arp请求,源主机发送数据到目的主机。
几个重要的协议
ICMP协议
:因特网控制报文协议,TCP IP协议族的一个子协议,用于主机与路由器之间传递控制信息TFTP协议
:简单文件传输协议HTTP协议
:超文本传输协议NAT协议
:网络地址转换属接入广域网技术DHCP协议
:动态主机配置协议,分配IP地址
TCP三次握手
- 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers),表示建立连接。即主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;即主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手,表示响应。即主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
TCP四次挥手
- TCP客户端发送一个FIN报文,用来关闭客户到服务器的数据传送。
- 服务器收到这个FIN报文,它发回一个ACK报文,确认序号为收到的序号加1。和SYN一样,一个FIN报文将占用一个序号。
- 服务器关闭客户端的连接,发送一个FIN给客户端
- 客户端发回ACK报文确认,并将确认序号设置为收到序号加1
输入网址的执行过程:
浏览器获取网址——浏览器请求DNS域名解析系统解析网址——DNS解析域名成ip地址——建立TCP连接(80端口)——客户端发送HTTP协议给服务器请求网站首页——服务器将首页网站数据传给客户端浏览器——TCP连接释放——客户端浏览器解析首页网站数据——展示web页面
网络层与传输层的区别:
网络层
为不同的主机
提供通信服务,传输层
为不同应用进程
提供通信服务。
网络层
只对报文头部
进行差错检测,而传输层
对整个报文
进行差错检测。
UDP与TCP的区别:
UDP(User Data Protocol)用户数据报协议
无连接
不可靠(不能保证都送达)
- 面向报文(UDP数据传输单位是报文,不会对数据进行拆分和拼接操作,只是给 上层传来的数据加个UDP头或者给下层来的数据去掉UDP头)
- 没有拥塞控制,始终以恒定速率发送数据
- 支持一对一、一对多、多对多、多对一
- 首部开销小,只有8字节
TCP(Transmission Control Protocol)传输控制协议
有连接
可靠的
- 面向字节流
- 全双工通信,TCP两端既可以作为发送端也可以作为接收端
- 连接的两端只能是两个端点,即一对一,不能一对多
- 至少20个字节,比UDP大的多
套接字的理解:
一条TCP连接的两端就是两个套接字。
套接字 = IP地址 :端口号
因此,TCP连接 = (套接字1,套接字2)= (IP1:端口号1,IP2:端口号2)
TCP与UDP对应的常用协议以及端口
TCP对应的协议:
- FTP-文件传输协议 21端口
- SMTP-邮件传送协议 25端口
- POP3-接受邮件协议 110端口
- HTTP-超文本传输协议 80端口
UDP对应的协议:
- DNS-域名解析服务 53端口
- SNMP-简单网络管理协议 161端口
- TFTP-简单文件传输协议 69端口
DNS域名系统的工作原理:
当客户端需要在程序中使用名称时,向DNS请求解析发送包括三条信息的查询信息:指定的DNS域名
,指定的查询类型
,DNS域名的指定类别
,DNS完成解析。