【计算机网络】小知识06

子网划分

IP地址分类:ABCDE,1、128、192、224、240开头。

分别是:主机公网、国际公司政府、小公司校园网科研单位、组播、保留。

四个八位二进制数组成。

私网:ABC分别是0、172.16、192.168。

127.0.0.1本地环网,localhost测试用。

子网掩码

网络掩码,地址掩码,子网络遮罩,就是说把自网络折起来了,不让外界窥探。

一般前面都是1,1的个数就是子网数。

某主机对外地址:ip地址按位与子网掩码,就是主机对外地址。

主机号和对外主机号,确定子网。

ABC的默认子网掩码,分别是8、16、24。

子网掩码隐藏主机号。

广播是正常网络号加上主机部分全是1的ip地址。

有限广播:32位全是1,用于本网广播。

如果发送给255.255.255.255那么全部主机都可以收到。

有限广播必须是自己也得在网络内部。但是直接广播不用,甚至可以给其他网络里发广播。

主机号是非默认子网掩码。非默认一定是默认的多出来的。

以太网帧结构

包括:起始指针、MAC头部、IP头部、TCP头部、数据、FCS。

其中IP、TCP、数据合体的最大长度叫做:MTU,数据的最大长度叫做MSS。

MTU=1500。

以太网帧结构:目标mac(6)、源mac(6)、类型(2)、数据(16-1500)、帧校验(4)

数据(46-1500)MTU=IP头(20)+TCP头(20+TCP选项)+用户数据MSS

以太网帧的大小范围:64-1518,MSS大小:1500-20ip头-20tcp头=1460

IP协议格式

ip报文=ip数据报,首部+数据部分。

版本号4b。

首部长度4b,一般是固定部分+可变部分。

区分服务8b,总长度,首部+数据长度。

标识,16b,计数器,标识作用是分片。

标志4b、片位移12b,与标识一块使用,用来分割数据,同时保证了数据的完整。按照偏移重新组回数据。

生存时间8b,到了时间之后,生存时间消失,丢弃包。

协议8b,tcp还是udp

首部校验和16b,看数据是否被篡改。

源地址32b、目的地址32b。

剩余是数据部分。

sock阻塞

阻塞就是停了,每过一段时间,看看完没完成。

将阻塞函数设置成阻塞函数。

例如recvfrom就是阻塞函数。

如果阻塞函数,就可以放入线程中。

ioctlsocket函数将sock变成非阻塞。

u_long iMode=1;
err=ioctlsocket(sock,FIONBIO,&iMode);
if(err==SOCKET_ERROR)cout<<"iocklsocket failed with error"<<err<<endl;

缓冲区

系统会给运行的进程分配空间,创建一个套接字,系统就会分配两块缓冲区,分别是发送缓冲区和接收缓冲区,并不是自己定义的那种。

getsockopt获取缓冲区大小。

阻塞模式下的sendto:如果缓冲区没有足够的空间,就等待足够大后,再把数据放入发送缓冲区。

非阻塞模式下的sendto:只要有数据要发送,就放入缓冲区,能放多少就放多少,放完之后立即返回,返回的是实际放入的数据大小。

UDP特点

UDP数据报的特点:

  1. UDP数据报,只要数据放入发送缓冲区,就直接发送出去,然后从缓冲区中删除——不可靠。
  2. 数据不可拆分,接到多少,剩下的就丢弃了。

UDP特点:

  1. 面向非连接,可以是1对1,也可以是1对多(广播和组播)
  2. 通讯方式:数据报文,数据包不可炒粉
  3. 传输效率高
  4. 会丢包,没有校验,可能出现乱序。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值