Ethernet初识0

Ethernet初识0

Ehternet 初识 0

Ehternet 初识 0
TCP/IP overview

1,TCP/IP Overview

(1)应用层:应用程序通过这一层访问网络,常见 FTP、HTTP、DNS 和 TELNET 协议;
(2)传输层:TCP 协议和 UDP 协议;
(3)网络层:IP 协议,ARP、RARP 协议,ICMP 协议等;
(4)网络接口层:是 TCP/IP 协议的基层,负责数据帧的发送和接收。

1.1,封装和分用



2,数据链路层

2.1,数据链路层功能:控制帧的传输
2.1.1,差错控制。包括:反馈重发、计时器、序号
2.1.2,流量控制是否在这里实现带宽控制?

2.2,以太网帧与IEEE802.3帧的区别(标准里面使用了一种称作 CSMA/CD 的接入方法)


3.3,MTU

为了提供足够快的响应时间,以太网和 IEEE802.3 对数据帧长度都有限制,其最大值分别为 1500 字节和 1492 字节,链路层的这个特性称作 MTU ,即 最大传输单元 。
feb21346bf7821429cff77a1e2680b4c



4,IP 网际协议
IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP、UDP、ICMP 及 IGMP 数据都以 IP 数据报格式传输。IP 协议提供的是 不可靠(unreliable)、无连接(connectionless)的数据报传送服务。

4.1 IP 数据报(datagram)


4.2 IP地址分类
A 类地址
A 类地址网络号范围:1.0.0.0—127.0.0.0
A 类 IP 地址范围:1.0.0.0—127.255.255.255
A 类 IP 的私有地址范围:10.0.0.0—10.255.255.255 (所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)
127.X.X.X 是保留地址,用做循环测试用的
因为主机号有 24 位,所以一个 A 类网络号可以容纳 2^24-2=16777214 个主机号
B 类地址
B 类地址网络号范围:128.0.0.0—191.255.0.0
B 类 IP 地址范围:128.0.0.0—191.255.255.255
B 类 IP 的私有地址范围:172.16.0.0—172.31.255.255
169.254.X.X 是保留地址;191.255.255.255 是广播地址
因为主机号有 16 位,所以一个 B 类网络号可以容纳 2^16-2=65534 个主机号
C 类地址
C 类地址网络号范围:192.0.0.0—223.255.255.0
C 类 IP 地址范围:192.0.0.0—223.255.255.255
C 类 IP 的私有地址范围:192.168.0.0—192.168.255.255
因为主机号有 8 位,所以一个 C 类网络号可以容纳 2^8-2=254 个主机号

4.3 IP 路由选择

4.3.1,route -n 查看路由表
4.2.2,路由经过
  • 1、搜索路由表,如果能找到和目的 IP 地址完全一致的主机,则将 IP 数据报发向该主机;

  • 2、搜索路由表,如果匹配主机失败,则匹配同子网的路由器(这需要子网掩码的协助)。如果找到路由器,则将 IP 该数据报发向该路由器;

  • 3、搜索路由表,如果匹配同子网路由器失败,则匹配同网络号路由器,如果找到路由器,则将该 IP 数据报发向该路由器;

  • 4、如果以上都失败了,就搜索默认路由,如果默认路由存在,则发报;

  • 6、如果都失败了,就丢掉这个包;

  • 7、接收到数据报的路由器再按照它自己的路由表继续转发,直到数据报被转发到目的主机;

  • 8、如果在转发过程中,IP 数据报的 TTL(生命周期)已经被减为 0,则该 IP 数据报就被抛弃。


4.2.3 NAT技术

NAT(Network Address Translation,网络地址转换)是 1994 年提出的。当在专用网内部的一些主机本来已经分配到了内网 IP 地址,但现在又想和因特网上的主机通信时,NAT 技术将其内网 IP 地址转换成全球 IP 地址,然后与因特网连接,也就是说,内网的数台主机使用了同一个全球 IP 地址在上网。


5,IP层其它协议

5.1,ARP
arp -a 查看 ARP 缓存表(表项记录 20 分钟超时)

5.2,ARP缓存表使用过程
  • 当主机要发送一个 IP 数据报的时候,会首先查询一下自己的 ARP 缓存表;

  • 如果在 ARP 缓存表中找到对应的 MAC 地址,则将 IP 数据报封装为数据帧,把 MAC 地址放在帧首部,发送数据帧;

  • 如果查询的 IP-MAC 值对不存在,那么主机就向网络中广播发送一个 ARP 请求数据帧,ARP 请求中包含待查询 IP 地址;

  • 网络内所有收到 ARP 请求的主机查询自己的 IP 地址,如果发现自己符合条件,就回复一个 ARP 应答数据帧,其中包含自己的 MAC 地址;

  • 收到 ARP 应答后,主机将其 IP – MAC 对应信息存入自己的 ARP 缓存,然后再据此封装 IP 数据


5.3,ICMP(Internet Control Message Protocol)控制报文协议
ICMP 报文由 8 位错误类型、8 位条件代码和 16 位校验和组成,被封装在一个 IP 数据报中:
各类型的报文,以及处理办法:

5.4,ping和tracerout

ping 程序和 traceroute 程序是两个常见的 基于 ICMP 协议 的工具。
ping它只是利用 ICMP 回显请求和回显应答报文,而不用经过传输层(TCP/UDP)。

5.5,IGMP(Internet Group Management Protocol)组管理协议



6,传输层:UDP 协议

从之前介绍的网络层协议来看,通信的两端是两台主机,IP 数据报首部就标明了这两台主机的 IP 地址。但是从传输层来看,是发送方主机中的一个进程与接收方主机中的一个进程在交换数据,因此,严格地讲,通信双方不是主机,而是主机中的进程

6.1,应用层协议与传输层协议的对照表

6.2,端口
6.2.1,端口的作用体现在传输层
6.2.2,应用层协议的默认端口
应用层协议: FTP TELNET SMTP DNS TFTP HTTP SNMP
系统端口号: 21 23 25 53 69 80 161

6.3,UDP(User Datagram Protocol)

6.3.1,UDP报文
6.4,tcpdump抓取 UDP 报文
tcpdup -vvv -X udp port 7777


7 TCP

7.1,TCP报头
TCP 是面向字节流的,而 TCP 传输数据的单元是 报文段 。一个 TCP 报文段可分为两部分:报头和数据部分。数据部分是上层应用交付的数据,而报头则是 TCP 功能的关键。

7.2 三次握手

建议连接
至此 TCP 连接已经建立,客户端进入 ESTABLISHED(已建立连接)状态,当服务端收到确认后,也进入 ESTABLISHED 状态,它们之间便可以正式传输数据了。
通信结束的三次握手:释放连接
  • (1) 此时 TCP 连接两端都还处于 ESTABLISHED 状态,客户端停止发送数据,并发出一个 FIN 报文段。首部 FIN=1,序号 seq=u(u 等于客户端传输数据最后一字节的序号加 1)。客户端进入 FIN-WAIT-1(终止等待 1)状态。

  • (2) 服务端回复确认报文段,确认号 ack=u+1,序号 seq=v(v 等于服务端传输数据最后一字节的序号加 1),服务端进入 CLOSE-WAIT(关闭等待)状态。现在 TCP 连接处于半开半闭状态,服务端如果继续发送数据,客户端依然接收。

  • (3) 客户端收到确认报文,进入 FIN-WAIT-2 状态,服务端发送完数据后,发出 FIN 报文段,FIN=1,确认号 ack=u+1,然后进入 LAST-ACK(最后确认)状态。

  • (4) 客户端回复确认确认报文段,ACK=1,确认号 ack=w+1(w 为半开半闭状态时,收到的最后一个字节数据的编号) ,序号 seq=u+1,然后进入 TIME-WAIT(时间等待)状态。

netstat命令中可以看到这些连接的状态。
1
2
3
4
5
6
7
8
netstat -in
shell@p200:/etc/ppp # netstat -in                                              
Proto Recv-Q Send-Q Local Address          Foreign Address        State
tcp       0      0 0.0.0.0:5555           0.0.0.0:*              LISTEN
tcp       0      0 192.168.1.241:52683    192.168.1.1:80         ESTABLISHED
tcp6       0      1 ::ffff:192.168.1.241:46354 ::ffff:216.58.221.132:443 SYN_SENT
   

7.3,连续 ARQ 协议

真实情况是,采用了流水线传输:发送方可以连续发送多个报文段(连续发送的数据长度叫做窗口),而不必每发完一段就停下来等待确认。这样,传输效率得到了很大的提升。

7.4,流量控制和拥塞控制

TCP 对于拥塞的控制总结为“慢启动、加性增、乘性减”,如图所示:


7,应用层协议

7.1,DNS (Domain Name Service 域名服务) 协议基于 UDP,使用端口号 53。
7.1.1,DNS 服务器是个分层次的系统:
  • (1)根 DNS 服务器 :全世界共有 13 台根域名服务器,编号 A 到 M,其中大部分位于美国。

  • (2)顶级(TLD)DNS 服务器 :负责如 com 、org 、edu 等顶级域名和所有国家的顶级域名(如 cn 、uk 、jp )。

  • (3)权威 DNS 服务器 :大型组织、大学、企业的域名解析服务。

  • (4)本地 DNS 服务器 :通常与我们主机最近的 DNS 服务器。

7.1.2,而域名解析的过程,有迭代查询和递归查询两种方式:
7.1.3,DNS报文
域名解析的的优先顺序是:先在 DNS 缓存查询,若没有找到记录,再查询 hosts 文件,若还是没找到记录,再向 DNS 服务器发出 DNS 查询报文

7.2,FTP

FTP (File Transfer Protocol 文件传输协议) 基于 TCP,使用端口号 20(数据)和 21(控制)。

7.3,HTTP

HTTP (HyperText Transfer Protocol 超文本传输协议) 基于 TCP,使用端口号 80 或 8080

TOP