计算机实现通信
网卡是文件,当向网卡中写文件时就是向网络中写内容,向网络中写内容时就可以被另外一个主机拿到。这样就可以实现通信。
计算机开始时是单机通信的就是计算机内部之间通信,进程之间通信,但是后来逐渐发展到了计算机和计算机之间通信,就相当于是人和人之间通信,计算机和计算机通信是在同一个局域网之下进行通信,因为每一个计算机是相互独立的,每一个计算机有自己执行的业务,然后当一个计算机要知道另外一个计算机工作的内容时,所以它们要通信就要想办法让它们联通起来,进行通信,让计算机之间形成协作。
如计算机A、B、C三台计算机,它们各自有各自的业务,然后执行好之后它们要进行交互,所以要协作通信连通,它们使用网络联通,达到数据共享!
网络互联: 多台计算机连接在一起, 完成数据共享;
而多台计算机联通通信是历史的必然,发展必然离不开多台计算机执行不同的业务,然后再数据汇总。
在一个局域网中当计算机多了之后,要通过交换机和路由器连接在一起!
一个小型的局域网就是一个实验室,在局域网中的各个计算机使用的是同一个网络然后就相当于各个计算机看到的是同一个资源共享资源,多个计算机就相当于是多线程,然后访问临界区资源一样!
不同局域网可以和不同局域网连接在一起,那么当两台主机之间实现数据传输时,会有数据丢失或者对于主机定位问题或者长距离传输数据衰减,长距离传输延申出了这些问题也就有了解决问题的设备。路由器呀交换机之类的设备存在。路由器定位主机,交换机解决数据长距离传输问题!
若是两个国家之间的主机要进行通信则要使用广域网连接起来
广域网WAN: 将远隔千里的计算机都连在一起
所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网。当国家和国家之间通信时,每一个国家可以看作是一个个局域网!
协议
协议是一种约定;
协议就如一份合同,然后当两个人签订了一份合同时它们都要遵守合同上的约定。
而计算机之间通信时计算机长距离传输数据可能衰减,而为了解决这些问题需要制定一些协议,在计算机网络中tcp/ip协议,以太网协议,Mac协议,http,https协议等等…计算机网络分了层每一层都有对应的协议。
协议就是双方约定好的并且都要遵守的,只有遵守才能更好的实现交互,不然若是没有协议别人说的话做的事可能都需要花大功夫去解析,所以协议极大的降低了通信的成本,提高了沟通的效率也就是减少了沟通问题的出现!
而协议对于不同的人来说是不一样的,如学校老师和学生它们会遵守不同的协议,不同的身份有不同的协议规则,所以计算机网络分层有不同的协议。
当计算机进行长距离数据传输时,要保证数据准确的到达下一个主机就要通过计算机网络分层的传输层使其到达指定主机,数据转发的时候要对主机进行定位,这样才能知道要发给谁,在同一个局域网中可能会存在多个主机,要保证不错发所以要定位主机确认发给谁。
那么主机发送数据丢失该怎么办?也要有对应协议来保证
把数据从一台主机发送给另一台主机时要保证很多问题,要找到发送的主机也要确保数据安全不丢失,所以在发送数据时还要发送额外的内容用来确保数据能发送过去并且准确,而多的内容由计算机网络分层的每一层来提供,会多报头内容用来表示发送给谁然后也要确保数据安全。就比如在网上购物时不仅仅得到的是买的物品还有一个包装盒,然后上面记录了一些额外的信息用来保证接收的快递是准确的,在计算机中多出来的那一部分为报头,报头中有各种字段信息,这些字段信息一般用结构体对象来表示,里面有解决当前层的问题的方法:到下一个设备通过数据链路层网卡,而定位主机用ip协议,当长距离传输时用tcp协议,而处理发送来的数据用引用层的https,http,ftp协议等…这些包含在报头中。
为什么会有这些问题呢?是因为两个主机距离过于远了,并且在中途会有很多主机然后当这个主机发送数据时可能会被其他主机获取到,然后呢这个主机就要对特定主机进行定位,因为两个主机相隔很远所以不知道因此要对主机定位就像两个人相距距离传输距离变长了所以会存在这些问题!
在通信时,要有一个数据段来描述信息的约定字段,每次在发送数据时要再多发一些东西用来描述,这些发的是一些约定信息这就是报文,而报文信息很多所以用结构体描述起来协议报文协议是双方约定的表现形式为结构体对象约定定义协议,就像我们在正常的说话时,是同一套协议,快递单号也有自己的协议。
发消息多一些信息就是一些协议结构体协议通过结构体表达出来双方都认识的结构体对象->报文
就如一个汉字的含义,每一个汉字设计出来然后一个对应汉字有自己的含义,在生产计算机时有很多东西要统一就是制定的一些标准要统一执行,协议只是标准的一部分,然后由权威官方来制定标准然后由别人来执行
当定制标准之后别人要使用这个标准就需要遵守这个标准。
计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式.
网络传输各种各样的协议然后解决各层的问题也就有了协议分层,分层是使他们耦合度降低,实现高内聚,低耦合就如软件分层一般,分层使它们耦合度降低然后使各层关系不大这样它们在维护上的成本降低了当问题是层状的解决问题的协议也是层状的,就是技术栈规模太大所以分层,但是每一层都和每一层进行通信
打电话分层,逻辑上是人和人,电话和电话
但是实际上是人和电话,电话和人沟通
在语言层有语言协议,然后电话层有电话协议,每一层遵守每一层对应的协议,语言层要保证说出的话语的准确性,要确保双方能获得要进行通信握手,各层之间耦合度很低,然后当语言层出问题几乎不会