一、网络的发展
独立模式:一开始计算机之间是相互独立的;

那么一开始电脑没有进入到老百姓的时候,电脑是由科学家来使用,那么如果一个科学家在电脑上完成各自任务之后,想把任务得出的数据给其他科学家,那么他只能把数据写入到软卡上,然后把软件插入到另外一个科学家的电脑上,那么这个过程效率是非常低的,如果两个科学家的距离非常元还得把软卡运到指定科学家那里去,所以为了提高人与人之间的工作效率,科学家们提出了网络的概念;
网络互联:多台计算机连接在一起,完成数据共享:

局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起:

广域网WAN:将远隔千里的计算机都连在一起:

所谓"局域网"和"广域网"只是一个相对的概念.比如,我们有"天朝特色"的广域网,也可以看做一个比较大的局域网。
结论:计算机是人的工具,人要协同工作,注定了网络的产生是必然的。
二、初识协议
协议是一种约定,例如:妈妈跟你说:我喊你吃饭,你就停下所有的事情,去吃饭;这就是你和你妈妈的约定;
计算机之间的传输媒介是光信号和电信号;通过"频率"和"强弱"来表示0和1这样的信息;要想传递各种不同的信息,就需要约定好双方的数据格式。
问题:只要通信的两台主机,约定好协议就可以了么?
答:定好协议,但是你用频率表示01,我用强弱表示01,就好比我用中国话,你用葡萄牙语一样,虽然大家可能遵守的一套通信规则,但是语言不同,即是订好了基本的协议,也是无法正常通信的。
所以,完善的协议,需要更多更细致的规定,并让参与的人都要遵守:
1)计算机生产厂商有很多;
2)计算机操作系统,也有很多;
3)计算机网络硬件设备,还是有很多;
如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议;
一般具有定制协议或者标准的资格的组织或者公司都必须是业界公认或者具有江湖地位的组织或者公司,下面是文心一言生成的标准制定组织,大家看一下就可以:
1)IEEE(电气和电子工程师协会):这是一个由计算机和工程领域专家组成的庞大技术组织,在通信协议领域贡献突出。IEEE制定了全世界电子、电气和计算机科学领域30%左右的标准,包括IEEE802系列标准,这些标准涵盖了从局域网(LAN)到广域网(WAN)等多种网络技术。
2)ISO(国际标准化组织):ISO是由多个国家的标准化团体组成的国际组织,它在开放系统互连(OSI)模型方面的工作尤为著名。OSI模型定义了网络通信的七层协议结构,尽管在实际应用中,TCP/IP协议族更为普遍,但OSI模型仍然在学术和理论研究中占有重要地位。
3)ITU(国际电信联盟):ITU是联合国下属的专门机构,负责制定电信领域的国际标准。ITU-T制定的标准涵盖了电话和网络通信,与ISO合作确保了通信技术的全球兼容性和互操作性。
以上这些组织或公司都能在一定程度上定制协议标准,以满足特定需求或推动技术发展。
三、协议分成
协议本质也是软件,在设计上为了更好的进行模块化,解耦合,也是被设计成为层状结构的。
协议分层的好处:

在这个例子中,我们的"协议"只有两层:语言层、通信设备层。但是实际的网络通信协议,设计的会更加复杂,需要分更多的层但是通过上面的简单例子,我们是能理解,分层可以实现解耦合,让软件维护的成本更低。
四、OSI 七层协议
1)OSI (Open System lnterconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
2)把网络从逻辑上分为了7层.每一层都有相关、相对应的物理设备,比如路由器,交换机;
3)OSI七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
3)它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整.通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
4)但是,它既复杂又不实用;所以我们按照TCP/IP四层模型来讲解。


其实在网络角度,OSI定的协议7层模型其实非常完善,但是在实际操作的过程中,会话层、表示层是不可能接入到操作系统中的,所以在工程实践中,最终落地的是5层协议。
五、TCP / IP五层(或四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇。
TCP/IP通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
**物理层:**负责光/电信号的传递方式.比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等.集线器(Hub)工作在物理层.
**数据链路层:**负责设备之间的数据帧的传送和识别.例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作.有以太网、令牌环网,无线LAN等标准.交换机(Switch)工作在数据链路层.
**网络层:**负责地址管理和路由选择.例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由).路由器(Router)工作在网路层.
**传输层:**负责两台主机之间的数据传输.如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机.
**应用层:**负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等.我们的网络编程主要就是针对应用层。

物理层我们考虑的比较少,我们只考虑软件相关的内容,因此很多时候我们直接称为TCP/IP四层模型,一般而言:
1)对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
2)对于一台路由器,它实现了从网络层到物理层;
3)对于一台交换机,它实现了从数据链路层到物理层;
4)对于集线器,它只实现了物理层;
但是并不绝对,很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(比如端口转发);
六、再识协议
为什么要有 TCP / IP 协议?
答:首先,即便是单机,你的计算机内部,其实都是存在协议的,比如:其他设备和内存通信,会有内存协议。其他设备和磁盘通信,会有磁盘相关的协议,比如:SATA,IDE,SCSI等。只不过我们感知不到罢了。而且这些协议都在本地主机各自的硬件中,通信的成本、问题比较少。
其次,网络通信最大的特点就是主机之间变远了。任何通信特征的变化,一定会带来新的问题,有问题就得解决问题,所以需要新的协议咯。

所以,为什么要有TCP/IP协议?本质就是通信主机距离变远了。
未完待续!
