网络基础

网络协议

  用以数据传输的一组规则,常用的网络协议有:
HTTP:超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最广泛的一种网络协议;
TCP: 传输控制协议(Transmission Control Protocol)是一种面向连接的,可靠的,基于字节流的传输层通信协议;
IP: 因特网互联协议(Internet Protocol)
UDP: 用户数据报协议(User Datagram Protocol)是OSI参考模型中一种无无连接的传输层协议,提供面向事务的简单不可靠信息传输服务;
FTP: 文件传输协议(File Transfer Protocol)
ICMP:Internet控制报文协议(Internet Control Message Protorol)它是TCP/IP的一个子协议,该协议运行于IP主机和路由器之间控制消息;
IGMP:是Internet组管理协议(Internet Group Management Protocol)它是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由之间;
ARP: 正向地址解析协议(Address Resolution Protocol)通过已知IP,寻找对应主机的MAC地址;
RARP:反向地址转换协议,通过MAC地址确定IP地址;
  网络编程就是根据协议规则进行编程,学习网络协议就是学习其规则;
以太网帧协议:根据MAC地址,完成数据包传输。

IP地址

IP地址是网络中主机的标识
  在网络中主机想要与其他机器通信就必须拥有一个自己的IP地址,IP地址为32位(IPV4)或者128位(IPV6)。每一个数据包都必须携带目的地址IP和源IP地址。

端口号

  端口号用于区分一台主机中接收到的数据包应该转交给哪一个进程进行处理。注意TCP端口号与UDP端口号是相互独立的:
1- 1023 为UNIX系统占用:比如80端口分配给WWW服务,21端口分配给FTP服务等
注册端口;
1024 -49151 分配给进程或者应用:这些端口号在还没有被服务器资源占用时,可以由用户的APP动态注册获得。
动态端口号49152 - 65535:被称为动态端口号他一般不固定分配某种服务而是动态分配的。

网络模型分层结构

  如下所示是两个网络模型分层结构,分别是OSI协议七层参考模型和tcp/ip协议参考四层模型,现在的大部分网络都是参考四层模型做的。

  顺口溜:应示会输网数物(OSI),应传网网(TCP/IP)

如上图所示为数据的封装与传递过程(tcp/ip协议参考五层模型),图片来源为《计算机网络》2008年电子工业出版社出版,作者:谢希仁

以太网帧格式

  如上图所示,数据的封装与传递在第二层中数据被封装成了以太网帧格式,以太网帧格式如下图所示:其中目的地址和源地址为MAC地址。

  但是需要注意的是,目的地址一开始是不知道的。但是可以在发送数据以前通过ARP请求来获得目的主机的MAC地址,它是以太网帧格式的一种特殊格式,它的类型为0806,如下图所示,需要注意的是数据部分包含了上层封装的各个表头。

  ARP请求通过目的主机的ip地址来找到目的主机,当目的主机收到了ARP请求包后,则发送ARP应答包,在应答包中填入主机需要的MAC地址,源MAC、ip和目的MAC,ip需要换位置,这样主机就获得了目的主机的MAC地址。

IP协议

  IP协议工作在网络层,网络表头NH其中的一种IP数据报格式,如下所示,图片来源:百度百科IP数据报

  其中:
    版本:ipv4, ipv6
    TTL : time to live 生存时间,为了防止以太网数据帧一直路由不到想要的目的主机,在网络中一直跳,而阻塞网络,便定义了一个TTL,当以太网数据帧每经过一个路由器TTL便减1,将TTL减到0的路由器将会把它抛弃。
    源IP:32位---4字节,点分十进制表示,为一个字符串格式数据。
    目的IP:32位---4字节。
。。。。后续在编程中使用到了再补充。

c/s模型和b/s模型

client-server browser-server
优点 保存了大量数据,速度快、可自定义协议 安全性较好、跨平台、开发工作量较小
缺点 安全性差、不能跨平台、开发工作量较大 不能缓存大量数据,严格遵守网络协议
posted @ 2021-01-15 21:23  ding-ding-light  阅读(161)  评论(0编辑  收藏  举报