网络编程

1、网络编程

网络编程的三要素
【1】IP地址:唯一标识网络上的每一台计算机
 两台计算机之间通信的必备要素
【2】端口号:计算机中应用的标号(代表一个应用程序)
 0-1024系统使用或保留端口 ,
 有效端口0-655363】通信协议:通信的规则
 TCP,UDP

  相同的通信协议可以确保正确的解码(TCP/IP)。

2、网络模型

 

   常见的网络模型:

 

 3、传输层的通讯规则

传输协议
UDP:相当于収短信(有字数限制),
 不需要建立连接,
 数据报的大小限制在64k内,
 效率较高,不安全,容易丢包
TCP:相当于打电话,需要建立连接,
 效率相对比较低,数据传输安全,
 三次握手完成。
 (点名答到确认)

 三次握手协议  四次分手协议

4、数据传输层,网络层,链路层和物理层的理解:

  在需要通信的时候,首先在应用层声明什么协议?如Http协议,ftp协议,基于Linux的SSH协议。然后会加密等操作。

  在数据传输层,会找到要传输的目的ip,封装发送请求包。要经过三次捂手,四次分手  

三次握手>数据传输>四次分手成为一个最小粒度不可被分割

  这样可以避免路由到不同的服务器问题。

  在网络层是基于TCP/IP可靠的数据传输协议

 

 通过子网掩码与ip的位移与运算,可以看到需要吓一跳的网关,

  在上图我们可以清晰的看到:有ip地址,子网掩码,网关,DNS(解析域名的服务器)

  下图为路由表。通过ip地址与掩码地址的做二进制位与运算,得到当前网络的网络号。找到下一跳的网关ip。在路由表是通过网卡生成的。首先ip与路由表中的子网掩码进行二进制位与运算,找Destination是否匹配。

如下图:和百度地址ip进行比较。可以看到走第三个条目。 可以找到吓一跳的ip地址。

  换言之,同一个局域网不需要在查找下一跳的地址。可以匹配到第一个条目。

 

  

物理层和链路层。 网卡和二进制编码。

  下一步找到链路层表。找到下一个网卡的mac地址。网络包最外层为mac地址。内存为最终目标ip地址,最里面ip有端口地址。

 

 

  

    

 

posted @ 2022-04-05 10:21  Jerry&Ming  阅读(36)  评论(0)    收藏  举报