zoukankan      html  css  js  c++  java
  • 【转载阮一峰互联网协议】【侵权即删】【互联网协议】入门一

    1、先判断是否是同一个子网络,若是子网络,就采用广播方式,去传递数据,然后对应得接收方会选择接收。

    2、IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

    在一个网络里面的子网掩码的计算,是以网络中有多少台主机来计算的。比如说一B类IP地址为172.16.0.0的网络划分成若干子网,要求每个子网内有主机数为500台,则该子网掩码的计算方法基本步骤如下:
      第一步,首先将子网中要求容纳的主机数“500”转换成二进制,得到100000100。
      第二步,计算出该二进制的位数为10位,即n =10。
      第三步,将255.255.255.255先化成二进制 11111111.11111111.11111111.11111111
    从后向前10位全部置“0”,得到二进制数“11111111.11111111.11111100.00000000
    ”,转换成十进制后即为255.255.252.0,这就是该要划分成主机数为500的B类IP地址 192.168.0.0的子网掩码。

    以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。

    "标头"包含数据包的一些说明项,比如发送者、接受者、数据类型等等;"数据"则是数据包的具体内容。

    "标头"的长度,固定为18字节。"数据"的长度,最短为46字节,最长为1500字节。因此,整个"帧"最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。

    以太网数据包必须知道接收方的MAC地址,然后才能发送。

    以太网采用了一种很"原始"的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。

    如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送。

    网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。

    IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

    IP数据包也分为"标头"和"数据"两个部分。

    "标头"部分主要包括版本、长度、IP地址等信息,"数据"部分则是IP数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。

    P数据包是放在以太网数据包里发送的,所以我们必须同时知道两个地址,一个是对方的MAC地址,另一个是对方的IP地址。

    如果两台主机不在同一个子网络,那么事实上没有办法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的"网关"(gateway),让网关去处理。

    如果两台主机在同一个子网络,那么我们可以用ARP协议,得到对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个"广播"地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。

    "传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。

    我们必须在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做UDP协议,它的格式几乎就是在数据前面,加上端口号。

    UDP数据包,也是由"标头"和"数据"两部分组成

    "标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的"数据"部分,而前面说过,IP数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样:

    UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。

    TCP协议是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

    TCP协议可以为各种各样的程序传递数据。

    "应用层"的作用,就是规定应用程序的数据格式。

    举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。

    这是最高的一层,直接面对用户。它的数据就放在TCP数据包的"数据"部分。因此,现在的以太网的数据包就变成下面这样。

    浏览网页用的是HTTP协议,它的整个数据包构造是这样的:

    原文链接:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

  • 相关阅读:
    windows 7中添加新硬件的两种方法(本地回环网卡)
    文档编辑大神
    BIOS Setup
    Sound Card Chip
    modem&NIC&sound card
    Monitor
    chassis & power
    HDD
    C#开发实例 鼠标篇
    编程之美 1.8小飞的电梯调度算法
  • 原文地址:https://www.cnblogs.com/yyumeng/p/8661658.html
Copyright © 2011-2022 走看看