tcp入门(唐唐的故事)

1,互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。把互联网分成五层,容易让人理解。

2,对这五层的理解(唐唐讲故事):

实体层:目的就是把计算机连接起来,用电气信号传输0,1

链路层:指定一套规则或方法来解析0和1。他包含一些规定,比如几个01凑一组,这一组01代表什么意思。--》最初基本上每家公司都有自己的分组方式,太乱了,这样就好比一个不懂英文的而中国人和老外对话。完全不在一个频道。这个时候一个类似语言协会的人出来了,说国际语言一英语问标准。这就是以太网。

网路层(以太网协议):把一组一组的01分组方式给规范化了。一组01构成一个数据报(帧)。每个帧都有一个头和数据  》》》》》 |head|data|

    head:里面装了一些东西,比如你是谁的,那里来的,是人是妖,到哪去。(西游记里面常说的:你是谁,是人是妖,你从哪里来,要到哪里去。我是唐三藏,从东土大唐来,到西天拜佛求经,当然他肯定是人)

    data:里面就是一写01,就好比唐三藏自己。

    这里又的说说,唐三藏说的大唐来,西天去。这里包含了一个东西,在网络里叫地址。唐三藏这个数据包要么走。这必须要让唐三藏自己带一些信息,要去西天,好的,佛祖给了经书,唐三藏就得回去,这时就得从西天回去大唐。这里的西天,大唐就是我们常常说的MAC地址。以太网规定,帧必须从一块网卡发到另一块。而地址是唯一(全世界哦48位)的,ps:所以假西天其实就是一些人常做的事情,欺骗唐唐,吃掉唐唐。

    MAC:网卡地址,用来标明数据的发送和接收地址;当然有了地址也没用,因为还需要一个大嘴巴回答妖怪,那些问题,所以唐唐的嘴巴就想个扩音器,把自己信息到处对别人说,但是并不是所有人都喜欢唐唐,因为他老说去西天,留不住,所以只有西天接收他。唐唐大嘴巴就是广播。

    广播:把自己的地址和要去的地方说明。告诉同一个子网中的计算机,我要去哪里。这里我们又不得不说,唐唐路上打妖怪,他不是那么简单就到西天的,但是他又三个徒弟啊。所以网络也有,他又ARP协议。可能有些人问,既然根据MaC地址用广播的方式进行数据传输,那为什么还要一个路由的东西(其实不要也可以,我们是可以吧两台不管位在地球哪里的两台计算机用广播的方式连接起来)。我想,这可能就有要回到唐唐了,唐唐在西游记里面对别人说西天,女儿国留他当老公,可是对每个人都说,我要去西天。烦都烦死了,类似的,如果把所有计算机都放在一个网络(除去子),那么你发个数据包,得想全世界计算机说一遍,贫僧要去西天。这要比对,还不累死,所以广播的方式只适合相对短距离构成的子网中进行。这时,路由器大神出现,把一个一个子网连接在一起。所以,数据帧发送有两种方式:广播和路由传输

    PS:MAC地址和网络地址不是一个概念,他们没啥关系。MAC地址是网卡地址,也可以说是网卡的身份证号。而网络地址是管理员随意分配给你的一个地址,我们称他为IP地址。这个你会发现,连接不同的网络IP地址会改变。身份证作用可以告诉大家我是哪个村的(IP地址也类似,标明所属子网)。

    既然身份证能够地位你是哪个村的,其实本来他就是一串数字,他是怎么做到的。原来,身份证有在公安系统做了规定,哪几位代表省份,哪几位代表市。。。。。这个就好比我们的IP地址也遵循一个规定叫IP协议。IP协议规定,ip地址由两部分组成,一个是前X位表示所属网络,后面的32-X为主机部分。处于同一个子网络的电脑,它们IP地址的网络部分必定是相同的,也就是说172.16.254.2应该与172.16.254.1处在同一个子网。但是IP地址都是32位啊,谁知道你前几位表示的是子网,哪几位代表主机。这时,某个天才程序猿就想,我找个东西和他做一些操作,男女搭配,干活不累。所以,子网掩码出现了。子网掩码用来标识IP地址前几位表示的是子网,哪几位代表主机。他的原理是:用二进制的And运算。例如:172.16.254.2 子网掩码 255.255.255.0  先把IP地址化成32位2进制,然后把子网化成二进制。进行AND运算,结果是172.16.254.0。这前24位为子网地址、后8位为主机地址。

    根据IP协议发送的数据,就叫做IP数据包。不难想象,其中必定包括IP地址信息。但是前面说过,以太网数据包只包含MAC地址,并没有IP地址的栏位。那么是否需要修改数据定义,再添加一个栏位呢?回答是不需要,我们可以把IP数据包直接放进以太网数据包的"数据"部分,因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构。具体来说,IP数据包也分为head和data两个部分。

    head::部分主要包括版本、长度、IP地址等信息,"数据"部分则是IP数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。IP数据包的head部分的长度为20到60字节,整个数据包的总长度最大为65,535字节。因此,理论上,一个IP数据包的data部分,最长为65,515字节。以太网数据包的data部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

  

学习过程参考了:阮大神的<tcp简介>

        <五层协议详解>  

    如果有错,希望大家指出。

    

原文地址:https://www.cnblogs.com/lx-1024/p/7215520.html