TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。 TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。 TCP/IP协议并不完全符合OSI的七层参考模型,后者是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。 TCP/IP通讯协议采用了4层的层级结构,每一层都依赖它的下一层所提供的网络来完成自己的需求。
应用层:为用户提供所需要的各种服务或系统应用接口 例如:FTP、Telnet、DNS、SMTP等
主机到主机层:建立、维护和取消一次端到端的数据传输过程,控制传输节奏的快慢,调整数据的排序等等
因特网层:定义IP地址;路由选择;实现数据从源到目的地的转发过程
网络接入层:(数据链路层和物理层)
应用层:HTTP 80 超文本传输协议,提供浏览网页服务
Telnet 23 远程登陆协议,提供远程管理服务
FTP 20、21 文件传输协议,提供互联网文件资源共享服务
SMTP 25 简单邮件传输协议,提供互联网电子邮件服务
POP3 110 邮局协议,提供互联网电子邮件服务
TFTP 69 (UDP) 简单文件传输协议,提供简单的文件传输服务
主机到主机层:
TCP(传输控制协议)属于面向连接的网络协议,面向连接,可靠传输,流控及窗口机制,使用TCP的应用:web浏览器(http),文件传输(FTP)等。
UDP(用户报文协议)属于无连接的网络协议,无连接,不可靠传输,尽力而为的传输,使用UDP的应用:域名系统(DNS),视频流;IP语音(VoIP)
TCP报文格式:
端口号范围1~65535;1~1024保留的端口号是well-know的,1024以后是可以自定义的端口号就是在IP地址后面跟着的数字192.168.12.23:80
Scource port(源端口) Destination port(目的端口)Sequence number(***) Acknowledgement number(确认号)这两个是实现TCP可靠传输的根本。Window(滑动窗口的大小),Checksum(校验和),Control bits(控制位)
UDP报文格式:
TCP连接建立(三次握手)关注三个字段(seq,ack,ctl(控制位))
seq是自己的***,ack是用来确认对端的***,ctl=SYN(SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。)
ack=1表示我收到你的数据了,并且请你发送***为1的数据
TCP连接断开(四次挥手)
TCP滑动窗口机制(由接收方来控制发送方发送数据的大小)
因特网层:网络层也叫Internet层 负责将分组报文从源端发送到目的端 网络层作用 为网络中的设备提供逻辑地址 负责数据包的寻径和转发
协议:
ARP协议(Address Resolution Protocol):解析出目标IP地址对应的MAC地址。 维护ARP映射(IP地址与MAC地址的对应关系)的缓存。不安全,不可靠,由于接收端不做任何确认,可能导致接收端的消息泄露(ARP劫持)。可以再终端输入ARP -a来查看Ip地址对应的MAC地址
dst表示目标 MAC地址,全F表示广播的数据帧。
IP报文格式
Version(版本) Header(IP头的长度) Priority&Type of Service(qos服务质量) Total Length(本文总长度)Identification(分片) Fragment offset(分片)Flags(特殊标志) Time to live (TTL防环,出错发送ICMP消息) Protocol (协议号告诉数据是什么报文) Header checksum(头校验和判断数据是否损坏)
因特网层工具:
Ping(ICMP) Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP(Internet Control Messages Protocol)协议。 Ping常用于探测到达目的节点的网络可达性。
Traceroute/Tracert:帮助我们找出从自己本地到目标节点之间所穿越的每一台路由器的IP地址,有利于分析数据行走路径。
参考模型: