数据通信-TCP/IP

1.TCP/IP概述

TCP/IP参考模型

                   

TCP/IP协议簇

TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。 TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。 TCP/IP协议并不完全符合OSI的七层参考模型,后者是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。 TCP/IP通讯协议采用了4层的层级结构,每一层都依赖它的下一层所提供的网络来完成自己的需求。

TCP/IP参考模型各个层次的功能

应用层:为用户提供所需要的各种服务或系统应用接口 例如: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地址,有利于分析数据行走路径。

         参考模型:

摘自:https://www.bilibili.com/video/av37359658