目录

TCP/IP 详解

本文是《TCP/IP》详解一书的笔记。

分层

  • 链路层:

    • ARP 地址解析协议:获取下一跳设备的Mac地址

    • RARP 逆地址解析协议:

  • 网络层:

    • IP 网际协议

    • ICMP 协议:Ping 和 traceroute 都使用它,ip辅助协议

    • IGMP 协议:用来把UDP数据多播到多个主机

  • 运输层:

    • TCP 协议

    • UDP 协议

  • 应用层:

    • FTP 协议

    • SMTP 协议

    • DNS 系统

    • TFTP 协议

    • BOOTP 协议

    • SNMP 协议

物理网络

  • Ether net 以太网

  • 令牌环网

  • 点对点链接

  • FDDI 光钎分布式数据接口

  • 这些物理网络内部是数据链路层的网桥或者集线器链接在一起的,使用的是MAC地址,而物理网络之间的链接使用的是路由器,用的地址为IP地址

分组:数据被切成了一小块一小块,每一小块就叫做分组

封装

  • 分组被一层一层加上各种首部的过程

  • 以太网首部 + IP首部 + TCP首部 + 应用数据 + 以太网尾部

分用:接收端将封装后的数据,一层一层拆开,分发给上层协议使用,继续拆封装或者处理的过程

ip地址

  • A类: 0xxxxxxxx :0.0.0.0 - 127.255.255.255

  • B类: 10xxxxxxx :128.0.0.0 - 191.255.255.255

  • C类: 110xxxxxx :192.0.0.0 - 223.255.255.255

  • D类: 1110xxxxx :224.0.0.0 - 239.255.255.255

  • E类: 11110xxxx :240.0.0.0 - 255.255.255.255 留待后用

  • InterNIC (Internet Network Information Center)机构分配IP,但是只分配网络号,具体主机号留给系统管理员分配

ip地址类型

  • 单播地址:目的端为单个主机

  • 广播地址:目的端为给定网络号上的所有主机

  • 多播地址:目的端为同一组内的所有主机

端口号

  • TCP 和 UDP都采用16bit的端口号来识别应用程序,所有端口号:0 - 65535

  • FTP : 21

  • Telnet : 23

  • TFTP : 69

  • /etc/services记录了默认的程序的默认端口号

TCP/IP应用程序编程接口

  • socket

  • TLI(运输层接口)

CSMA/CD

  • 带冲突检测的载波侦听多路接入技术

数据链路层的封装格式

  • IEEE 802.2 封装格式,目的地址 6 + 源地址 6 + 长度 2 + DSAP 1 + SSAP 1 + cntl + org code + 类型 + 数据 + CRC

  • 以太网的封装格式: 目的地址 6 + 源地址 6 + 类型 2 + 数据 + CRC

PPP 点对点协议

  • 标志 1 + 地址 1 + 控制 1 + 协议 2 + 信息 + CRC + 标志

环路接口

  • 为了在同一台主机上实现 TCP/IP 通信

  • 127 网段就是为环路接口预留的

最大传输单元MTU

  • PPP : 296字节

  • 以太网: 1500 字节

  • FDDI : 4352 字节

引言

  • 不可靠:不保证 IP 数据报一定能到达目的地

  • 无连接:IP不维护任何关于后续数据报的状态信息,即每个数据报的处理是相互独立的

IP首部

  • 版本 4 + 首部长度 4 + TOS服务类型 8 + 总长度 16

  • 标识 16 + 标志 3 + 偏移 13

  • 生存时间 8 + 协议 8 + 首部检验和 16

  • 源IP 地址 32

  • 目的IP地址 32

  • [选项]

  • TCP数据