三、TCP/IP

作者: LAN头的小刀 | 来源:发表于2020-03-08 21:09 被阅读0次

    个人学习笔记,若有侵权,请告知!

    目录

    TCP/IP模型与OSI模型

    TCP/IP模型与OSI模型

    1、TCP/IP协议簇

    TCP/IP协议簇

    2、应用层

    Telnet、SNMP、FTP、SSH、TFTP、HTTP、HTTPS、SMTP、POP、IGMP、DNS、DHCP

    3、主机到主机层

    • 传输控制协议(TCP)
      • 面向连接
      • 可靠传输
      • 使用TCP的应用:web浏览器、电子邮件、文件传输程序
    • 用户数据报协议(UDP)
      • 高效
      • 尽力传输
      • 使用UDP的应用:域名系统(DNS)、视频系统、IP语音(VoIP)

    4、特点

    • TCP:安全可靠、效率低
    • UDP:安全性低、效率高

    TCP机制

    1、TCP三次握手

    TCP采用三次握手建立连接

    TCP三次握手
    • 第一次握手:Client向Server发送一个连接请求,在这过程中,标志位SYN=1,发送序号seq=x,Client进入SYN_SENT状态,等待Server确认;(我要开始一个连接)
    • 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,确认序号ack=x+1,随机产生一个发送序号seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态;(好的,可以连接)
    • 第三次握手:Client收到确认后,检查确认序列号ACK是否为x+1,标志位ACK是否为1,若正确,则将标志位ACK置为1,确认序号ACK=y+1,并将该数据包发送给Server,Server检查确认序号ACK是否为y+1,标志位ACK是否为1,若正确则连接成功,Client和Server进入ESTSBLISHED状态。(好的,收到)
    • 完成三次握手,客户端和服务器端开始传送数据。

    2、TCP四次挥手

    TCP采用四次挥手终止TCP连接

    TCP四次挥手
    • 第一次挥手:Client发送一个FIN=N,用来关闭Client到Server的数据传输,Client进入FN_WAIT_1状态;(我要终止连接)
    • 第二次挥手:Server收到FIN后,先发送ack=N+1,告知Client请求已收到,但Server还没准备好,继续等Server的消息,这时Client进入FN_WAIT_2状态;(可以终止连接)
    • 第三次挥手:当Server确认数据已经发送完成,则向Client发送FIN=M确认报文,告知Client数据发送完成了,准备关闭连接,Server进入LAST_ACK状态;(终止连接了)
    • 第四次挥手:Client收到Server的断开连接FIN=M确认报文后,向Server发送ack=M+1确认断开报文,Client进入TIME_WAIT状态;Server收到Client确认断开报文后,进入CLOSED状态,断开TCP连接。(好的,收到)
    • 完成四次挥手,客户端和服务器断终止TCP连接。终止连接端可以是客户端,也可以是服务器端。

    3、端口号类型

    • 范围:0~65535
    • 已划分给特定协议,不能随意使用:0~1023
    • 可以有限的去使用:1024~49511
    • 可以随意使用:49512~65535

    4、源/目的端口

    • 源端口随机分配,目标端口使用已知端口
    • 应用客户端使用的源端口号一般为系统中未使用且大于1023
    • 目的端口号为服务器端应用服务的进程,如telnet23

    5、TCP的特点

    • TCP/IP 协议栈的传输层
    • 面向连接的协议
    • 全双工模式运行
    • 错误检查
    • 数据包序列化
    • 接收确认
    • 数据恢复功能

    IP

    1、IP报头

    IP报头
    • 版本(Ver):IP版本号。
    • 报头长度(IHL):报头的长度,单位为32 位字。
    • 服务类型(Service Type):服务类型指出应如何处理数据报。
    • 数据包总长度(Packet Length):包括报头和数据的总长度。
    • 标识(Identification):唯一的IP分组值,用于区分不同的数据报。
    • 标志(Flag):指出是否进行了分段。
    • 片内偏移(Frag.Offset):在分组太大,无法放入一个帧中时,提供了分段和重组功能。它还使得因特网上可有不同的MTU (Maximum Transmission Unit ,最大传输单元)。
    • 生存时间(Time to Live):生成分组时给它指定的存活时间。如果分组到达目的地之前TTL就已到期,分组将被丢弃。这可避免IP 分组因寻找目的地不断在网络中传输。0-255,ttl减少1,一般16跳足够了。
    • 协议(Protocol):告诉IP上层用的是TCP(6)还是UDP(7)。
    • 报头校验和(Header Checksum):对报头执行CRC的结果。
    • 源IP地址(Source Address):发送方的32位IP地址。
    • 目标IP地址(Destination Address):接收方的32位IP地址。
    • 选顶(Options):用于网络测试、调试、安全等。
    • 填充(Padding)

    2、IP编址

    IP地址长32 位,这些位被划分成4 组,每组8 位。总的有2^32个地址,3 种方法描述IP 地址:

    • 点分十进制表示,如172.16.57.186 。(常用)
    • 二进制,如10101100.00010000.00111001.10111010。
    • 十六进制,如AC.10.39.BA 。
    IP编址

    3、地址范围

    • A类 : 8位network/24位host 取值范围 :1~126 127.x.x.x本机回环地址(0xxxxxxx)
    • B类 :16位network/16位host 取值范围 :128~191 (10xxxxxx)
    • C类 :24位network/8位host 取值范围 :192~223 (110xxxxx)
    • D类 :取值范围 :224~239 (1110xxxx)
    • E 类 : 保留

    4、私有地址

    • A类 :10.0.0.0~10.255.255.255
    • B类 :172.16.0.0~172.31.255.255
    • C类 :192.168.0.0~192.168.255.255

    5、ICMP(因特网控制消息协议)

    • 作用:控制网络层的连通性,面向连接的协议;用于向原节点发送“错误报告”信息。
    • 原理:发送echo request,目标收到后发送echo reply
    • 常用命令:ping、traceroute

    5.1、ping

    • ping是个应用程序
    • 工作原理:
      1. 发送ICMP的echo request
      2. ICMP被IP封装,途径的网络设备看到的是IP包
      3. 目标主机接收到echo request后发送echo reply
    • ping通:
      1. 通信子网——去与回
      2. 资源子网——发送主机与接收主机

    5.2、Traceroute

    • 目的:探测到目标主机所经过的路径
    • 工作原理:利用IP头部的TTL字段,TTL报超时信息探测每一个设备节点;从TTL=1开始发送,每次累加TTL值,直到达到目的地

    6、ARP

    • ARP(地址解析协议):通过广播查询IP对应的MAC
      1. 过程:目标主机在本地网络
      2. 基本功能:将IPv4地址解析为MAC地址;维护映射缓存
    • 代理ARP(Rroxy ARP):目标IP不在广播域时,使用本接口MAC进行数据转发
    • RARP(逆向地址解析协议Reverse ARP):通过MAC来获得IP——DHCP
    • 免费ARP
      1. 端口UP时发送一个免费ARP,若地址有冲突就会回应
      2. 当设备变更了硬件(网卡),也会发送免费ARP,如果其他设备有相应的ARP表,则将更新

    相关文章

      网友评论

        本文标题:三、TCP/IP

        本文链接:https://www.haomeiwen.com/subject/yewjdhtx.html