什么是tcp/ip协议?
TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP 协议、IMCP 协议、TCP 协议、以及 http、ftp、pop3 协议等。网络中的计算机都采用这套协议族进行互联。
tcp/ip参考模型
TCP/IP 被分为 4 层,每层承担的任务不一样,各层的协议的工作方式也不一样,每层封装上层数据的方式也不一样:
- 应用层:应用程序通过这一层访问网络,常见 FTP、HTTP、DNS 和 TELNET 协议;
- 传输层:TCP 协议和 UDP 协议;
- 网络层:IP 协议,ARP、RARP 协议,ICMP 协议等;
- 链路层:是 TCP/IP 协议的基层,负责数据帧的发送和接收。
相关概念
(1)IP
网络上每一个节点都必须有一个独立的 IP 地址,通常使用的 IP 地址是一个 32bit 的数字,被 . 分成 4 组。如255.255.255.255
(2)域名
域名与计算机的 IP 地址相对应,并把这种对应关系存储在域名服务系统 DNS(Domain Name Service)中,这样用户只需记住域名就可以与指定的计算机进行通信了
(3)mac地址
mac地址称为物理地址、硬件地址,用来定义互联网中设备的位置。
网络层管理 IP 地址,链路层则负责 MAC 地址
(4)端口号
不同程序之间通过端口号来识别
(5) 封装和分组
封装:当应用程序发送数据的时候,数据在协议层次当中从顶向下通过每一层,每一层都会对数据增加一些首部或尾部信息,传输层传给网络层的数据单元称作 TCP 报文段(TCP segment) 或 UDP数据报(UDP datagram) 。网络层传给链路层的数据单元称作 IP 数据报(IP datagram)。链路层上的传输单元称作帧(Frame)。
分组:当主机收到一个数据帧时,数据就从协议层底向上升,通过每一层时,检查并去掉对应层次的报文首部或尾部,与封装过程正好相反。
(6) rfc
RFC是什么?RFC就是tcp/ip协议的标准文档,在这里我们可以看到RFC那长长的定义列表,现在它一共有4000多个协议的定义,当然,我们所要学习的,也就是那么十几个协议而已。
网络包的组成
报头/起始帧分界符——MAC头部——IP头部——TCP头部——数据——FCS(帧校验序列)(根据tcp的封装)
滑动窗口机制
所谓滑动窗口,就是在发送一个包之后,不等待ACK信号的返回,直接发送后续的一系列包。有效利用等待ACK号的这段时间。
IP头部的两个IP地址分别为:发送方网卡的IP地址;应用程序提供的接收方IP地址。
MAC头部的发送方和接受方的MAC地址分别是发送方网卡的MAC地址;利用ARP(地址解析协议)协议,根据接收方IP地址广播得到的接收方MAC地址。