课后练习 第一阶段:Python开发基础 day31 网络编程基础之基础知识小练习

day31课后作业


1.上课讲的网络协议5层模型,每层的内容整理出来

物理层

物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。网络数据就是通过这些电信号组成01010101100101的格式进行传输的。

数据链路层

把物理层的电信号分组,一组电信号构成一个数据报,叫做'帧',每一数据帧分成:报头head和数据data两部分。

  • head包含:(固定18个字节)
    • 发送者/源地址,6个字节
    • 接收者/目标地址,6个字节
    • 数据类型,6个字节
  • data包含:(最短46字节,最长1500字节)

mac地址: 数据报中的发送者地址和接收者地址,就是mac地址。每一块网卡都有一个唯一的mac地址:12位16进制数表示(前6位是厂商编号,后6位是流水线号)

广播:同一个局域网内通信,全靠吼,向局域网中的某一台电脑发数据,就需要向所有的电脑发请求,然后我们要接收的那台电脑获得数据。(群发)

网络层

  • ip :ipv4:32位2进制表示:点分十进制表示 从0.0.0.0到255.255.255.255,范围是有限的,不能表示出所有的网络设备,于是出现了ipv6
  • 子网掩码:通过子网掩码和ip判断两个ip是否处于同一个网段,通过ip地址和子网掩码做按位与运算
  • ip跟mac有转换关系
    • 主机172.16.10.10/24访问172.16.10.11/24
      • ARP协议:广播的方式发送数据包,获取目标主机的mac地址
      • mac地址学习:mac地址和ip地址的映射表
      • 第一次接收到就会在ip/mac映射表中添加一条数据
      • 任何一种协议都有头和内容

传输层

  • tcp协议:
    • 三次握手,四次挥手(重点,看图),连接如何建立,发数据如何保证可靠,断开如何断开,在建立连接过程中有状态
    • 服务的如果看到大量的syn_rcvd状态
    • dos和ddos攻击:拒绝服务攻击,分布式的拒绝服务攻击
    • 端口号:端口范围0-65535,0-1023为系统占用端口
  • udp协议:
    • 发送,不需要要响应,所以数据不可以靠,(看视频)
  • 端口
    • 通过ip+子网掩码唯一确定一台设备
    • 通过ip+子网掩码唯+端口号唯一确定一个软件
  • 半连接池

应用层

应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式

应用层功能:规定应用程序的数据格式。

  • 例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。

2.画图描述三次握手、四次挥手,及c端和s端的状态

三次握手:

  • 客户端向服务端发送连接请求。
  • 服务端回应同意用户端的请求,并向客户端发送连接请求。
  • 客户端回应服务端,同意连接。

四次挥手:

  • 客户端向服务端发送断开请求。
  • 服务端回应同意客户端断开的请求。
  • 服务端向客户端发送断开请求。
  • 客户端回应同意服务端断开的请求。

3.写一个客户端,实现给服务端发送hello world字符串,写一个服务端,将客户端发送的数据变成大写后返回

服务端代码:

import socket

soc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

soc.bind(('127.0.0.1',8081))
soc.listen(5)
conn,addr = soc.accept()
print(addr)
data = conn.recv(1024)

conn.send(data.upper())
conn.close()

客户端代码:

import socket
soc = socket.socket()

soc.connect(('127.0.0.1',8081))

soc.send(b'hello world')

data = soc.recv(1024)

print(f'我收到了服务端回的消息:{data.decode("utf8")}')

soc.close()

运行结果:

我收到了服务端回的消息:HELLO WORLD

博客地址

https://www.cnblogs.com/foreversun92/

posted @ 2019-09-05 17:35  foreversun92  阅读(228)  评论(0编辑  收藏  举报