三、TCP/IP

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

目录

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)