这数据包怎么发送,想学数据传送的原理,能教我一下吗,谢谢!!
比如我们要打开一个网页,过程是,先发一个请求到服务器(HTTP请求),服务器会将你要请求的网页文件发回来给你,你就能看到网页信息了。
我给你说一下请求发过去的过程(服务器把网页发回来给你的过程是一样的)。
你在计算机打开浏览器以后,计算机会给浏览器分配一个端口号,并在应用层生成HTTP请求,要发往服务器的80端口,这个请求一层一层往下,到传输层的时候,被封装为“数据段”;再往下传,到网络层的时候被封装为“IP数据包”,再往下传,到数据链路层的时候被封装为“帧”,这个帧再往下传,到物理层的时候,被转换为电信号。
电信号从物理层发出,到交换机的物理层,交换机的物理层将电信号转换为帧(接收方做的是一个跟发送方相反的过程),交换机拿到帧以后,读懂上面的MAC地址,拿到MAC地址以后,去对照MAC地址映射表,决定要从哪一个端口转发出去以后,将帧发给物理层,物理层再将帧转换为电信号,然后发出。
到路由器的物理层接收到交换机发过来的电信号以后将其转换为帧,路由器的物理层将这个帧发给路由器的数据链路层,数据链路层将帧拆开,得到IP数据包,并将这个帧发给网络层;路由器的网络层拿到IP数据包以后,读出包上的目的IP地址,然后去对照路由表,决定要把这个包从哪个端口转发出去。决定以后,网路层把这个包往下发,到数据链路层,数据链路层把IP包封装为新的帧,再往下发给物理层,物理层再把帧转换为电信号,发给服务器。
服务器的物理层接收到电信号以后,将电信号转换为帧发给数据链路层;数据链路层将帧拆开,得到IP数据包以后,发给网络层;网络层得到IP数据包以后,将包拆开,得到数据段,并继续往上传,给传输层;传输层得到数据段以后,将数据段拆开,就得到当初客户机生成的原本的HTTP请求,这个请求一直往上发,到应用层,工作在应用层的网站服务就得到了这个请求,并作出响应。
响应的方式就是将你请求的网页发回来给你,过曾是一样的。
要理解这个过程,最好能先理解一下网络模型的概念。
希望对你有帮助。
多重随机标签