传输层协议:TCP/UDP (内涵三次 四次)

一 TCP协议介绍

TCP在数据传输前,先要进行链接测试(三次握手),如果测试通过才会发送真实数据。

TCP将若干字节构成一个分组,叫报文段

TCP报文封装在IP数据报中;    面向连接,慢    稳定;

1 TCP报文的首部格式 

              源端口号:为发送方进程对应的端口号

              目标端口号:对应接收端的进程接收端收到数据段后,根据这个端口号

                                    确定把数据送给哪个应用程序的进程

                序号:当TCP从进程接收数据字节时,就把它们存储在发送缓存中,并

                           对每一个字节进行编号

                确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号

                首部长度:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选                                      项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据                                      起始处距离 TCP 报文段的起始处有多远。

2 tcp特性

二 端口号

端口

协议

说明

21

FTP

FTP服务器所开放的控制端口

23

TELNET

用于远程登录,可以远程控制管理目标计算机

80

HTTP

超文本传输协议

443

HTTPS

用SSL/TLS对数据进行加密和解密,Http进行传输

25

SMTP

SMTP服务器开口的端口,用于发送邮件

110

POP3

用于邮件的接收

0到65535  前1024是知名端口

2 端口号作用:

区别应用程序 (一个端口号只能被一个程序使用)   区别协议(因为协议也是应用程序调用的,端口只能区别应用层协议)

3 层协议(应用层协议)对应的程序

ftp       文件传输                                    vsftpd   FileZilla

http     超文本传输                                nginx  apache  lls  tomcat

dhcp   自动分配ip                                 dhcp

ssh                                                       openssh

安全外壳协议”(Secure Shell),是一种加密的网络传输协议,提供了一个在网络中安全地远程连接到其他计算机和设备的方法

dns  域名解析                                     bind

比如:http是超文本传输协议,apache/nginx  软件调用http协议

3 客户端/服务端端口号

客户端端口号:随机

服务端端口号:一般固定

4 区分应用程序

自己系统通过pid号区分应用程序  (每打开一个应用程序,会随机产生一个pid号 )

两台电脑通过 端口区分应用程序

5  7层协议理解

7层协议就是规定了如何打包数据,然后将打包好的数据传到4层,要通过4层发出去,就像你寄快递,你要先打包,再选一家快递公司,然后按照早就选好的快递公司发出去。

 三  控制位:

描述两台电脑目前处于何种状态

          URG   :表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段只有当                                     URG=1时才有效

          ACK(确认位):表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字                                           段 才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报                                           文段称为确认报文段

           PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后                                            续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应                                             用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停                                         留在TCP接收缓冲区中

           RST(重置位):如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主                                           机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主                                        机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文                                         段

          SYN(同步位):在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一                                           个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连                                           接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有                                            在 前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段

          FIN(断开位):表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,                                          即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的                                       TCP报文段称为结束报文段

            窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始                                允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数                                   据

            校验和:提供额外的可靠性紧急指针:标记紧急数据在数据字段中的位置

            选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,

在数据通信之前,发送端与接受端要先建立连接,等数据发送结束后,双方再断开连接,

TCP连接的每一方都是由一个IP地址和一个端口号组成,

四 TCP建立连接的过程称为三次握手

一次握手:当服务端收到请求建立连接的报文,报文号随机产生并且报文中的控制位SYN=1,代                      表请求建立连接,此时客户端处于syn-sent状态

二次握手:服务端收到请求连接的报文会回复一个报文会产生随机序号y,生产一个确认号为

                客户端请求报文的序号+1(x+1),然后控制位syn=1  ack=1  代表同意建立连接,此时

                 服务器处于syn-rcvd状态

三次握手:当客户端收到同意建立连接的报文时会回复一个确认报文会按照对方要求产生序号为                     x+1再生成一个确认号值为对方报文的序号+1(y+1)最后控制位的ack=1,代表收到对                    方同意,此时客户端处于estab-lished状态,

当服务器收到ack报文也处于estab-lished状态,此时双方已建立连接

为什么三次握手?

网络环境复杂,为了确保数据能够到达,2次不够,4次多余,三次正好

五 TCP断开连接的四次挥手

        确保双方都知道对方已经准备好关闭连接,防止数据丢失

1 客户端发送一个FIN报文,报文指定一个序列号,此时客户端处于fin-wait-1状态

2 服务端接到报文段后,返回一个带有ACK=1的报文段,确认了收到了客户端断开请求,此时客        户端会将未完成的数据发送给客户端,进入close-wait状态

3  若服务端也想断开连接,和客户端的第一次挥手一样,发给FIN报文,且指定一个序列号,此时      处于last-ack状态

4  客户端收到FIN之后,一样发送一个ACK报文作为回答,且把服务器的序列号值+1作为自己            ACK报文的序列号值,此时客户端处于time-wait

六 有限状态机

  1. CLOSED 没有任何连接状态

  2. LISTEN 侦听状态,等待来自远方TCP端口的连接请求 (服务开启 http(进程) 80端口在帮进程 看着 有没有人找 http )

  3. SYN-SENT 在发送连接请求后,等待对方确认

  4. SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认

  5. ESTABLISHED 代表传输连接建立,双方进入数据传送状态

  6. FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认

  7. FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求

  8. TIME-WAIT 完成双向传输连接关闭,等待所有分组消失

  9. CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认

  10. LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失

  11. CLOSING 双方同时尝试关闭传输连接,等待对方确认

七 UDP协议

     无连接   不稳定   快(以下优点记住就行)

  1. 工作在传输层

  2. 面向连接协议

  3. 全双工协议:在同一时间内双向传输

  4. 半关闭

  5. 错误检查

  6. 将数据打包成段,排序

  7. 确认机制

  8. 数据恢复,重传

  9. 流量控制,滑动窗口

  10. TCPUDP
    面向连接无连接
    由重传机制无重传机制
    传输速度慢传输速度快
    可靠可靠
    重要或大文件聊天软件,视频会议

udp特性 

udp应用层协议端口号

协议名称UDP端口号作用
TFTP69简单文件传输,用于小型文件传输,而且是在网卡就设置了,可以在非操作系统上传输
RPC111远程过程协议,可以远程管理指挥操作
NTP123时间同步协议

八 telent协议

远程连接

TELNET + IP地址

修改用户权限

sys

user-interface vty 0 4

user privilege  level 15

九 WireShark:还没有搞清门道

1 选择网卡

选取你需要抓取的网卡,有波浪线代表有数据流量

2 模式选择

(1)混杂模式: 就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。

(2)普通模式:网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。

   TIP:混杂模式不会影响网卡正常工作,建议使用混杂模式。

3 过滤器的使用
 

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值