ip地址如何得到目的网络地址为n?源ip地址是由ip层进行ip选路时,自动添加到ip包头里边的;或者由客户端执行bind函数手工指定的。目的ip地址是由conn
分类:动态代理IP / 阅读:139/ 发表于:2023年09月09日
源ip地址是由ip层进行ip选路时,自动添加到ip包头里边的;或者由客户端执行bind函数手工指定的。
目的ip地址是由connect或者sendto得到的。
网络层在得到这些ip地址的时候,需要看tcp/ip协议的具体实现;系统会在创建socket句柄的时候分配一块内存,存放和这个socket句柄相关的地址信息,然后加入全局socket句柄链表,然后tcp/ip协议栈可以访问这个表,获取相应的ip。
1、数据链路层对数据帧的长度都有一个限制,也就是链路层所能承受的最大数据长度,这个值
称为最大传输单元,即MTU。以以太网为例,这个值通常是1500字节。
2、对于IP数据包来讲,也有一个长度,在IP包头中,以16位来描述IP包的长度,也就是说,
一个IP包,最长可能是65535字节。
3、结合以上两个概念,第一个重要的结论就出来了,如果IP包的大小,起过了MTU值,那么就需要
分片,也就是把一个IP包分为多个,这个概念非常容易理解,一个载重5T的卡车,要拉10T的货,它
当然就得分几次来拉了。
4、IP分片是很多资料常讲的内容,但是我倒是觉得分不分片其实不重要,重要的是另一个东西。一个
数据包穿过一个大的网络,它其间会穿过多个网络,每个网络的MTU值是不同的。我们可以设想,如果
接受/发送端都是以太网,它们的MTU都是1500,我们假设发送的时候,数据包会以1500来封装,然而,
不幸的是,传输中有一段X.25网,它的MTU是576,这会发生什么呢?我想,这个才是我们所关心的。
当然,结论是显而易见的,这个数据包会被再次分片,咱开始用火车拉,到了半路,不通火车,只通汽车,
那一车货会被分为很多车……仅此而已,更重要的是,这种情况下,如果IP包被设置了“不允许分片标志”,那
会发生些什么呢?对,数据包将被丢弃,然事收到一份ICMP不可达差错,告诉你,需要分片!
这个网络中最小的MTU值,被称为路径MTU,我们应该有一种有效的手段,来发现这个值,最笨的方法或许是先
用traceroute查看所有节点,然后一个个ping……
5、到了传输层,也会有一个最大值的限制,当然,对于只管发,其它都不管的UDP来说,不再我们讨论之列。这里
说的是TCP协议。说到大小,或许会让人想到TCP著名的滑动窗口的窗口大小,它跟收发两端的缓存有关,这里讨论
的是传输的最大数据包大小,所以,它也不在讨论之列。
TCP的选项字段中,有一个最大报文段长度(MSS),表示了TCP传往另一端的最大数据的长度,当一个连接立时,连接
的双方都要通告各自的MSS,也就是说,它说是与TCP的SYN标志在一起的。当然,对于传输来讲,总是希望MSS越大越好,
现在超载这么严重,谁家不希望多拉点货……但是,MSS总是有个限制的,也就是MTU-IP头长度-TCP头长度,对于以太网来讲
它通常是1500-20-20=1460,虽然总是希望它能很大(如1460),但是大多数BSD实现,它都是512的倍数,如1024……
6、回到分片上来,例如,在Win2000下执行如下命令:
ping 192.168.0.1 -l 1473
按刚才的说法,1473+20(ip头)+8(icmp头)=1501,则好大于1500,它会被分片,但是,我们关心的是:
这个数据包会被怎么样分法?
可以猜想,第一个包是
以太头+IP头+ICMP头+1427的数据;
那第二个分片包呢?
它可以是:
以太头+IP头+ICMP头+1个字节的数据
或者是:
以太头+IP头+1个字节的数据
也就是省去ICMP头的封装,当然,IP头是不可以省的,否则怎么传输了……
事实上,TCP/IP协议采用的是后一种封装方式,这样,一次可以节约8个字节的空间。IP包头中,用了三个标志来描述一个分片包:
1、分片标志:如果一个包被分片了,被置于1,最后一个分片除外;——这样,对于接收端来讲,可以根据这个标志位做为重组的重
要依据之一;
2、分片偏移标志:光有一个标志位说明“自己是不是分片包”是不够的,偏移标志位说明了自己这个分片拉于原始数据报的什么位置,
很明显,这两个标志一结合,就很容易重组分片包了。
3、不允许分片标志:如果数据包强行设置了这个标志,那么在应该分片的时候,…… err,刚才已经说过了
是的,对外网址是不会改变的。路由器(或真实机器)会通过路由功能通过IP映射完成数据交换。每一次拨号,网络供应商(如电信、联通、移动)都只会给家庭分配一个随机的公网IP给路由器,公网IP是家庭里所有终端(电脑、手机、虚拟机等)的网络IP。
每一个信息包头都会打上这个公网IP地址和相应的终端MAC地址以及端口号,用来区分信息包的来去目标。
而路由器一般会为所有终端分配一个私网地址(DHCP服务功能)帮助用户容易区分终端的IP。
路由器用来区分各个终端是用的终端本身的MAC地址也叫物理地址(虚拟机也有自己的物理地址)。
这是路由器起到了所有终端与公网IP的数据中转以及端口映射等,从而起到了路由功能。
这就是一个常见的家庭网络的数据链路模型。
但如果是模拟器通过其它IP的VPN服务假设了新的数据数据链路,情况则又不相同了。(但这个不在考虑之内)
hop
英 [hɒp] 美 [hɑp]
v. 单足跳跃〔跳行〕
vt. 搭乘
vi. 双足或齐足跳行
n. 蹦跳,跳跃;跳舞;一次飞行的距离
1、不及物动词,(人) 单脚跳行。
例:I hopped down three steps.
我单脚跳下3级台阶。
2、可数名词, (人) 单脚跳行。
例:"This really is a catching rhythm, huh?" he added, with a few little hops.
“这节奏可真有感染力,是吧?”他补充说道,单脚小步跳了几下。
3、不及物动词,(鸟和其他小动物) 齐足跳行。
例:A small brown fawn hopped across the trail in front of them.
一只小棕鹿在他们面前蹦跳着穿过了小路。
4、可数名词,(鸟和其他小动物的) 齐足跳行。
例:The rabbit got up, took four hops and turned around.
兔子直起身子,蹦跳了4下,然后转过身。
5、不及物动词,快速移动(非正式)。
例:My wife and I were the first to arrive and hopped on board.
我和妻子是最先到达并跳上车的。
6、可数名词,(通常指乘飞机的)短途快速旅行。
例:It is a three-hour drive but can be reached by a 20-minute hop in a private helicopter.
这段路程开车需要3个小时,而乘坐私人直升飞机20分钟就可以到达。
扩展资料
近义词
1、jump
英 [dʒʌmp] 美 [dʒʌmp]
n. 跳跃;暴涨;惊跳
vt. 跳跃;使跳跃;跳过;突升
vi. 跳跃;暴涨;猛增
例:I jumped over the fence.
我从篱笆上跳了过去。
例:I'd jumped seventeen feet six in the long jump, which was a school record.
我跳远曾跳了17.6英尺,这是个校纪录。
2、dance
英 [dɑːns] 美 [dæns]
n. 舞蹈;舞会;舞曲
vi. 跳舞;跳跃;飘扬
vt. 跳舞;使跳跃
adj. 舞蹈的;用于跳舞的
例:He danced off down the road.
他沿着马路蹦蹦跳跳地走了。
例:Patterns of light, reflected by the river, dance along the base of the cliffs.
被河水倒映出的光影沿着悬崖底部轻快地跳动。
UPnP
英文名称:UniversalPlugandPlay
中文译名:通用即插即用
基本概念
UPnP是各种各样的智能设备、无线设备和个人电脑等实现遍布全球的对等网络连接(P2P)的结构。UPnP的应用范围非常大,以致足够可以实现许多现成的、新的及令人兴奋的方案,包括家庭自动化、打印、图片处理、音频/视频娱乐、厨房设备、汽车网络和公共集会场所的类似网络。UPnP是一种分布式的,开放的网络架构,它可以充分发挥TCP/IP和网络技术的功能,不但能对类似网络进行无缝连接,而且还能够控制网络设备及在它们之间传输信息。在UPnP架构中没有设备驱动程序,取而代之的是普通协议。UPnP是独立的媒介。在任何操作系统中,利用任何编程语言都可以使用UPnP设备。
UPnP并不是周边设备即插即用模型的简单扩展。在设计上,它支持0设置、网络连接过程“不可见”和自动查找众多供应商提供的多如繁星的设备的类型。换言之,一个UPnP设备能够自动跟一个网络连接上、并自动获得一个IP地址、传送出自己的权能并获悉其它已经连接上的设备及其权能。最后,此设备能自动顺利地切断网络连接,并且不会引起意想不到的问题。
UPnP推动了英特网技术的发展,包括IP、TCP、UDP、HTTP、SSDP和XML等技术。在英特网上契约以有线应用协议为基础,而该协议是说明性的、利用XML进行表述和HTTP进行传输的。与此相同的是,UPnP的明确设计目标就是提供这样的环境。再者,当成本、技术或经费等方面的因素阻止了在某种媒介里或接入其中的设备上运用IP时,UPnP能够通过桥接的方式提供非IP协议的媒体通道。UPnP不会为应用程序指定API,因此供应商们就可以自己创建API来满足客户的需求。
技术支持对UPnP的诠释
以下是微软官方网站对UPnP的解释:
问:什么是UPnP?
答:通用即插即用(UPnP)是一种用于PC机和智能设备(或仪器)的常见对等网络连接的体系结构,尤其是在家庭中。UPnP以Internet标准和技术(例如TCP/IP、HTTP和XML)为基础,使这样的设备彼此可自动连接和协同工作,从而使网络(尤其是家庭网络)对更多的人成为可能。
问:UPnP对消费者意味着什么?
答:简单、更多选择和更新颖的体验。包含通用即插即用技术的网络产品只需实际连到网络上,即可开始正常工作。实际上,UPnP可以和任何网络媒体技术(有线或无线)协同使用。举例来说,这包括:Category5以太网电缆、Wi-Fi或802.11B无线网络、IEEE1394(\"Firewire\")、电话线网络或电源线网络。当这些设备与PC互连时,用户即可充分利用各种具有创新性的服务和应用程序。
以下是BC官方网站对UPnP的解释:
UPnP(UniversalPlugandPlay),通用即插即用,是一组协议的统称,不能简单理解为UPnP=“自动端口映射”。在BitComet下载中,UPnP包含了2层意思:
1、对于一台内网电脑,BitComet的UPnP功能可以使网关或路由器的NAT模块做自动端口映射,将BitComet监听的端口从网关或路由器映射到内网电脑上。
2、网关或路由器的网络防火墙模块开始对Internet上其他电脑开放这个端口。
UPnP的经典应用
网络地址转换
在数量以百万计而且数目仍然在继续增长的家庭网络出现很久以前,Internet上的寻址系统的就已经开发出来了。实际上,在Internet尚处于幼年的时候所开发的这个寻址系统到目前为止仍然能够正常工作真可以说是一个奇迹。
因为Internet地址资源正在迅速被耗尽,大多数的家庭网络都使用网络地址转换(NAT)技术建立了一个网关。NAT是Internet工程任务组(IETF)制订的一种标准,它允许私有网络中的多台PC或设备共享一个全球唯一的公共地址(所使用私有地址的范围为10.0.x.x、192.168.x.x和172.x.x.x)。作为对IP地址短缺的一种临时补救措施,NAT可以很好地完成很多工作--例如WindowsXP的Internet连接共享就使用NAT,就像很多网关设备(例如DSL和线缆调制解调器)所做的一样。
但问题是:NAT希望所有的网络应用程序都以一种标准方式(即在数据包头中使用IP地址)进行通信,但是有些网络程序预计到NAT的存在。他们使用了NAT无法转换的嵌入式IP地址。
NAT穿越技术
NAT穿越技术允许网络应用程序对它们是否位于一个具有UPnP能力的NAT设备之后进行检测。然后,这些程序将获得共享的全球可路由IP地址,并且配置端口映射以将来自NAT外部端口的数据包转发到应用程序使用的内部端口上--所有这一切都是自动完成的,用户无需手动映射端口或者进行其它工作。NAT穿越技术允许网络设备或者点对点应用程序通过动态开启和闭合与外部服务之间的通信端口穿过NAT网关与外界通信。
UPnP的设置
如何设置UPnP支持
UPNP的英文全称是UniversalPlugandPlay,即通用即插即用协议,是为了实现电脑与智能的电器设备对等网络连接的体系结构。而内网地址与网络地址的转换就是基于此协议的,因此只要我们的路由器支持upnp,并且我们使用支持此协议的xp操作系统,那么我们就可以借此提高点对点传输速度。
进入路由器的设置界面,如果你的路由器支持upnp的话那么在转发规则选项卡下就会看到upnp设置选项(不同路由器可能会有不同),在此选项中,我们选择启用upnp,然后我们重启一下路由器。这样我们就完成了路由器的设置。
启用UPnP用户界面
在某些情况下,WindowsXP可以发现UPnP设备,并且提供它自己的用户界面控制这些设备。一个很好的例子便是\"网络连接\"文件夹中UPnP住宅网关设备的用户界面(UI)。市场上流行的LinksysBEFSR41W无线路由器在安装完毕后,会自动显示在\"网络连接\"文件夹中,因为WindowsXP已经内置了一个相关的应用程序。
除此之外,你可以使用以下步骤安装可选的UI组件。该UI组件会在系统发现新的设备后显示一个\"气球\"通知,并且在\"网上邻居\"文件夹中为每个设备防止一个图标。为了启用UPnPUI,请按照以下步骤操作:
1.点击\"开始\",点击\"控制面板\",然后点击\"添加或删除程序\"。
2.在\"添加或删除程序\"对话框中,点击\"添加/删除Windows组件\"。
3.在\"Windows组件向导\"中,点击\"网络服务\",点击\"详细\",然后选择\"通用即插即用\"复选框。
4.点击\"确定\",然后点击\"Windows组件向导\"对话框中的\"下一步\"。您可能需要提供您的WindowsXP安装CD。
UPnP映射失败的原因
1.系统服务中禁止了SSDP服务(用于寻找upnp设备)
2.开启了XP下的SP1的ICF(网络连接防火墙)。(XP的ICF与UPnP设备发现有冲突,SP2修复了这个问题,但是仍然需要在防火墙设置中允许例外:UPnP框架。)
3.路由器不支持UPnP,请向制造商询问。
等等。
UPnP的安全性
由于UPnP技术的简单性和坚持开放标准,UPnP技术已经得到了众多设备厂商的采纳。WindowsXP率先实现了对UPnP技术的支持,但是,它现在还存在一些安全漏洞,攻击者可以使用这些漏洞减慢您的PC的运行速度,或者,在极少数的情况下,攻击者可以对他在您的系统中的权限进行提升。但是,如果你在WindowsXP中安装了防火墙,这些问题都将不成其为问题。实际上,WindowsXP自身就附带了一个Internet连接防火墙,默认情况下,该防火墙安装在您的Internet连接上,因此能够保护您免遭Internet攻击者的攻击。UPnP中的这个安全性漏洞已经得到了修补。Microsoft安全性公告MS01-059对该问题进行了讨论,并且提供了与此有关的更多资源链接,你可以通过这些链接查看知识库文章了解更多信息,或者下载相应的安全补丁。
UPNP设备
UPNP是通用即插即用设备的缩写。
UPnP技术对即插即用进行了扩展,它简化了家庭或企业中智能设备的联网过程。在结合了UPnP技术的设备以物理形式连接到网络中之后,它们可以通过网络自动彼此连接在一起,而且连接过程无需用户的参与和使用中央服务器。
UPnP规范基于TCP/IP协议和针对设备彼此间通讯而制订的其它Internet协议。这就是它之所以被称作\"通用\"的原因所在--UPnP技术不依赖于特定的设备驱动程序,而是使用标准的协议。UPnP设备可以自动配置网络地址,宣布它们在某个网络子网的存在,以及互相交换对设备和服务的描述。基于WindowsXP的计算机可以充当一个UPnP控制点,通过程序界面对设备进行发现和控制。
如果与以前的即插即用相比,这种技术似乎并不具有什么革命性的意义。在操作系统中增加即插即用技术使得在单个计算机上安装、配置和添加外设的工作变得更容易了。但是UPnP为家庭用户或者小型办公环境中的非专业用户所带来的是一道更加美味的\"大餐\",他们可以利用UPnP玩多人游戏,进行实时通信(Internet电话,电话会议)以及使用类似WindowsXP的远程协助这样的其它技术。到目前为止,仅有配备了完整IT团队的几个大公司能够轻松做到这些(虽然,我怀疑多人游戏和能够上网冲浪的电冰箱是否会是他们强调的重点)。
评论信息
发表评论: