30天学不会网络-笔记

举报
黄生 发表于 2022/09/28 17:30:52 2022/09/28
【摘要】 三十天学不会TCP,UDP/IP网络编程这里是对上面的学习笔记。RFC枯燥,也有短的可看。比如RFC768 UDP3页、TFTP(RFC783和1350,都只有10几页)、ARP也不长。物理层接触少,记住关键字:介质、信号。数据块名称是Bit (手工狗头)一台主机怎么收到一个网络包?它有网卡,当然是网卡先收到一个包,然后网卡驱动程序在对比了MAC地址后,发现和自己的MAC匹配,就会产生一个中...

三十天学不会TCP,UDP/IP网络编程

这里是对上面的学习笔记。

RFC枯燥,也有短的可看。比如RFC768 UDP3页、TFTP(RFC783和1350,都只有10几页)、ARP也不长。

物理层接触少,记住关键字:介质、信号。数据块名称是Bit (手工狗头)

一台主机怎么收到一个网络包?它有网卡,当然是网卡先收到一个包,然后网卡驱动程序在对比了MAC地址后,发现和自己的MAC匹配,就会产生一个中断告诉CPU去读取这个包并向上传递。在此之前,网卡驱动还做了一件事,就是对网络包进行CRC校验,并核对,不一致的就直接丢弃包,一致的话会把包的CRC部分去掉。

MAC: Media Access Control Addr. 有48位,6组,每组2个16进制数字。前半由IEEE决定分配,后半厂家决定

image.png

使用wireshark抓到的包,解析界面一般是从Frame 包编号开始,说抓到的包多少bits,从哪个网络接口抓来的
然后下面是 Ethernet II,是链路层的一种帧格式,另一种是IEEE802.3
所以wireshark是从链路层介入抓取的网络包

Ethernet帧有最小长度限制(64字节),为什么不重要,而且这个限制可能已经过时了。了解一下概念即可:CSMA/CD 载波多路复用/冲突检测、以太网时隙(冲突时槽)

MAC和IP都可以唯一标识一台机器,为什么有了MAC还要有IP?这是一个问题。

一些特殊的IP地址被保留了用作特殊的用途,你可以在RFC3330里面找到他们。

广播,都有IP层面和MAC层面的概念,全是1就是广播
组播,应该是局域网/链路层内的概念,不可跨网段。怎么知道是组播呢,IP和对应的MAC都有约定和映射,网卡驱动读到MAC这样开头的就知道是组播帧。(0x01005e + binary 0) 用ARP也可以看到:

image.png

0xd是我的虚拟网卡 13…0a 00 27 00 00 0d …VirtualBox Host-Only Ethernet Adapter

gratuitous ARP 无端的、免费的。就DHCP客户端拿到IP后,广播喊一声谁和我有一样的IP,如果有回复,就提示IP冲突。ARP欺骗就是骗子假冒ARP回复,将MAC指向一个无辜的机器。网络就乱套了。

没有网卡,不接入网络,也会有环回地址,一般是127.0.0.1,也能Ping通。这也说明TCP/IP协议栈是在内核里,而不是和网卡绑定在一起的。

ping是基于ICMP,ICMP在IP之上;ping里面的32bytes就是abcdefg…
traceroute也是基于ICMP,也是发送的Type8 (Echo request)的ping请求报文。利用了IP报文头里的TTL特性,从TTS=1开始,不断累加,每次累加,就能在IP网络的路由导航中多往前走一步,每次到达的最远处路由都会返回Type: 11 (Time-to-live exceeded)。到达目的地后就停止。

其返回的ICMP的DATA部分,套的是请求头的IP头和IP包前8个字节(即ICMP部分),有点像套娃的意思吧
image.png

Linux上的traceroute请求是采用的UDP,请求30000以上的一个端口。

tftp只是传输小文件的
DHCP也叫bootp,因为以前经常用在系统启动获取IP等网络信息吧

TCP的滑动窗口演示网站

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。