作者:hackett

微信公众号:加班猿

TCP/IP(Transmission Control Protocol/Internet Protocol)传输控制协议/网际协议)是指可能在多个不同网络间实现信息传输的协定簇。TCP/IP协定不仅仅指的是TCP 和IP两个协定,而是指一个由FTP、SMTP、TCP、UDP、IP等协定形成的协定簇, 只是因为在TCP/IP协定中TCP协定和IP协定最具代表性,所以被称TCP/IP协定。——《百度百科》

经典的OSI七层模型,TCP/IP被分为4层,每层的协定的工作形式不一样,所封装的下层数据的形式也不一样。

一、IP地址

1、Windows下“win+r”弹出关上程序或资源的窗口,输出“cmd”后回车,用命令ipconfig即可查看电脑的IP地址(我用的是WiFi,所以看的是无线局域WLAN)

2、Linux下在终端输出 ifconfig -a 命令查看本人的IP地址

二、域名

12位数字组成的IP地址难记,IP地址还有一个别名称作域名,IP地址和域名是一一对应的常见的域名后缀有com、net、org。一般来说.com是商业机构用的,.net网络服务供应商应用,.org是一些组织应用,当初没有什么限度。

1、咱们能够关上阿里云万网域名官网

2、咱们查下hackett这个名字的域名后缀为wiki是否曾经被注册,能够看到hackett.wiki这个域名曾经被注册了,想要注册只能选其余域名后缀或其余名字注册。

3、这是我本人19年底注册的域名hackett.wiki域名。

三、MAC地址

MAC地址用于在网络中惟一标示一个网卡,一台设施若有一或多个网卡,则每个网卡都须要并会有一个惟一的MAC地址,由网络设备制造商生产时写在硬件外部。MAC地址是6Byte(48位)通常示意为12个16进制数,每2个16进制数之间用冒号隔开,如18:56:80:FA:DC:E1就是一个MAC地址

Windows下用ipconfig -all查看

Linux下在终端输出ifconfig命令查看

四、端口号

IP地址是用来查找和发现网络中的地址的,端口号是用来进行程序互相通信的(打个比方:IP地址是一栋楼,端口就是进出这栋楼的入口),一个端口16Byte,即2^16=65536个,1~1023为公认的端口绑定了某些服务协定,不能轻易调配,从1024---49151是被注册的端口,也成为“用户端口”,其余的为长期端口

罕用的有:

  • FTP : 21
  • TELNET : 23
  • SMTP : 25
  • DNS : 53
  • TFTP : 69
  • HTTP : 80
  • SNMP : 161
  • SSH :22

五、IP数据报

IP数据报的首部是5X4=20Byte,IP数据报=首部+数据局部

  1. 版本号:4位,0100示意IPV4,0110标记IPV6
  2. 首部长度:4位,示意首部的长度,包含可选字段
  3. 服务类型:最小时延、最大吞吐量、最高可靠性、最小破费4种,每种占1位
  4. 总长度:报头长度+数据局部长度=总长度(16位)最多能够2^16=65536字节
  5. 标识:16位,当数据报因为长度超过网络的MTU而必须分片时,依据分片中的标识字段是否雷同判断这些分片是否同一个数据报的分片,以此来进行分片的重组。通常每发送一份报文它的值就会加 1。
  6. 标记:3位,只有2位有意义。第二位MF(More Fragment)位1示意前面还有‘’分片”的数据报,为0示意已到最初一个数据报;第三位DF(Don’t Fragment)为1意思是“不能分片”。只有当DF=0时才容许分片。
  7. 偏移:13 位,在接管方进行数据报重组时用来标识分片的程序。
  8. 生存工夫:8 位,用于设置数据报能够通过的最多的路由器个数。TTL 的初始值由源主机设置(通常为 32 或 64),每通过一个解决它的路由器,TTL 值减 1。如果一个数据报的 TTL 值被减至 0,它将被抛弃。
  9. 协定:8 位,用来标识是哪个协定向 IP 传送数据。ICMP 为 1,IGMP 为 2,TCP 为 6,UDP 为 17,GRE 为 47,ESP 为 50。
  10. 首部校验和:依据 IP 首部计算的校验和码。
  11. 源 IP 和目标 IP :数据报头还会蕴含该数据报的发送方 IP 和接管方 IP。
  12. 选项:是数据报中的一个可变长、可选的信息,不罕用,多用于平安、军事等畛域。

六、IP的地址的分类

IP的地址分成4类ipv4地址占4个字节(32位)

A B C D E四类网络地址

例如:192.168.1.100

网络号:辨别不同的网络(局域网)

主机号:辨别同一个网络下不同的主机

A类地址:要求网络号占一个字节,主机号占3个字节,并且要求网络号(8位二进制)必须是0结尾

0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

网络号 0--127

主机号 1---254.254.254

B类地址:要求网络号占两个字节,主机号占2个字节,并且要求网络号(16位二进制)必须是10结尾

10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

网络号 128.0--191.255

C类地址:要求网络号占三个字节,主机号占1个字节,并且要求网络号(24位二进制)必须是110结尾

110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

网络号 192.0.0--223.255.255

D类地址:组播专用地址,不辨别网络号和主机号,必须是1110结尾

1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

E类IP地址 以“llll0”开始,为未来应用保留。240.0.0.0到255.255.255.254,255.255.255.255用于播送地址。

1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

下图IP地址就是个C类地址

七、ping和traceroute程序

ping程序和traceroute都是基于ICMP协定的工具。

用ping能够检测两台主机是否连,下图就是我用Ubuntu跟Windows各自ping的信息。ping 命令会返回一个 TTL 值,咱们能够应用它来判断指标的操作系统类型。常见操作系统缺省 TTL 值如下:

  • UNIX TTL: 255;
  • Linux TTL: 64;
  • WINDOWS 95/98 TTL: 32;
  • Windows NT 4.0/2000/XP/2003/7/8/10 TTL:128。

traceroute 程序是用来侦测主机到目标主机之间所经路由状况的重要工具。

1、Linux须要装置traceroute能力进行侦测。

2、Windows用tracert进行侦测,下图是先通过我笔记本WiFi连贯的192.168.1.1的路由,再通过一系列的路由最终达到谷歌的8.8.8.8

八、UDP

UDP (User Datagram Protocol)协定与TCP协定一样用于解决数据包,在OSI模型中,两者都位于传输层,处于IP协定的上一层。

它的次要特点有:

  • UDP 是无连贯的,发送数据之前不须要建设连贯(而 TCP 须要),缩小了开销和时延。
  • UDP尽最大致力交付,不保障交付可靠性,因而主机不须要保护简单的连贯状态;。
  • UDP 是面向报文的,对于从应用层交付下来的 IP 数据报
  • UDP的首部开销小,只有8个字节,它比TCP的20个字节的首部要短。
  • UDP 没有拥塞管制,呈现网络拥塞时发送方也不会升高发送速率。这种个性对某些实时利用是很重要的,比方 IP 电话,视频会议等,它们容许拥塞时失落一些数据,因为如果不摈弃这些数据,极可能造成时延的累积。
  • UDP 反对一对一、一对多、多对一和多对多的交互通信。

UDP报文

UDP 数据报可分为两局部:UDP 报头和数据局部。其中数据局部是应用层交付下来的数据。UDP 报头总共 8 字节(2字节源端口、2字节目标端口、2字节长度、2字节校验和)

九、TCP

TCP(Transmission Control Protocol)是一种面向连贯的、牢靠的、基于字节流的传输层通信协议。

它的次要特点有:

  • 面向字节流
  • 面向连贯
  • 牢靠通信形式,无差错、不失落、不反复、按程序。;
  • TCP 连贯是 点对点 的,一条 TCP 连贯只能连贯两个端点。
  • UDP 反对一对一、一对多、多对一和多对多的交互通信。

TCP报文

TCP 数据报可分为两局部:TCP 报头和数据局部。其中数据局部是应用层交付下来的数据。TCP 报文段的报头有前 20 字节的固定局部

各字段的性能:

  1. 源端口:2字节
  2. 目标端口:2字节
  3. 序号:4字节,范畴0~2^32-1,报头中的序号字段值则指的是本报文段数据的第一个字节的序号。
  4. 确认号:4字节,冀望收到下个报文段的第一个数据字节的序号
  5. 数据偏移:4位,TCP报文段的报头长度,20字节+选项字段
  6. 保留:6位(URG、ACK确认、PSH推送、RST复位、SYN同步、FIN终止)
  7. 窗口:2字节,指本人的接管窗口大小
  8. 校验和:2字节,用于校验数据在传输中是否出错
  9. 紧急指针:2字节,当保留字段的URG=1无效
  10. 选项:长度可变,最长40字节

如果你感觉文章还不错,记得"点赞关注"

关注我的微信公众号【 加班猿 】能够获取更多内容