<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用Python模擬TCP/IP協議棧

      1. 代碼如下

      import random
       
      class ApplicationLayer:
          def send_data(self, data):
              print(f"Application Layer: Sending data: {data}")
              return data
       
          def receive_data(self, data):
              print(f"Application Layer: Received data: {data}")
       
      class TransportLayer:
          def send_segment(self, data):
              print("Transport Layer: Creating TCP segment")
              random.seed(100)
              source_port = random.randint(1024, 65535)
              dest_port = 80  # Assuming HTTP
              segment = f"TCP|{source_port}|{dest_port}|{data}"
              return segment
       
          def receive_segment(self, segment):
              print("Transport Layer: Receiving TCP segment")
              parts = segment.split("|")
              if len(parts) >= 4 and parts[0] == "TCP":
                  data = "|".join(parts[3:])
                  print(f"From port {parts[1]} to port {parts[2]}")
                  return data
              else:
                  print("Invalid TCP segment")
                  return None
       
      class InternetLayer:
          def send_packet(self, segment):
              print("Internet Layer: Creating IP packet")
              source_ip = "192.168.1.1"
              dest_ip = "10.0.0.1"
              packet = f"IP|{source_ip}|{dest_ip}|{segment}"
              return packet
       
          def receive_packet(self, packet):
              print("Internet Layer: Receiving IP packet")
              parts = packet.split("|")
              if len(parts) >= 4 and parts[0] == "IP":
                  segment = "|".join(parts[3:])
                  print(f"From IP {parts[1]} to IP {parts[2]}")
                  return segment
              else:
                  print("Invalid IP packet")
                  return None
       
      class LinkLayer:
          def send_frame(self, packet):
              print("Link Layer: Creating Ethernet frame")
              mac_source = "00:1A:2B:3C:4D:5E"
              mac_dest = "A1:B2:C3:D4:E5:F6"
              frame = f"ETH|{mac_source}|{mac_dest}|{packet}"
              return frame
       
          def receive_frame(self, frame):
              print("Link Layer: Receiving Ethernet frame")
              parts = frame.split("|")
              if len(parts) >= 4 and parts[0] == "ETH":
                  packet = "|".join(parts[3:])
                  print(f"From MAC {parts[1]} to MAC {parts[2]}")
                  return packet
              else:
                  print("Invalid Ethernet frame")
                  return None
       
      class TCPIPStack:
          def __init__(self):
              self.application = ApplicationLayer()
              self.transport = TransportLayer()
              self.internet = InternetLayer()
              self.link = LinkLayer()
       
          def send_message(self, message):
              print("\n--- Sending Message ---")
              # 應用層:將message封裝為data
              data = self.application.send_data(message)
              
              # 傳輸層:將data封裝為segment,添加源端口和目標端口等信息
              segment = self.transport.send_segment(data)
              
              # 網絡層:將segment封裝為包packet,添加源IP和目標IP等信息
              packet = self.internet.send_packet(segment)
              
              # 數據鏈路層:將packet封裝為幀(frame),添加源和目標MAC地址等信息
              frame = self.link.send_frame(packet)
              
              print(f"Final Frame: {frame}")
              return frame
       
          def receive_message(self, frame):
              print("\n--- Receiving Message ---")
              packet = self.link.receive_frame(frame)
              if packet:
                  segment = self.internet.receive_packet(packet)
                  if segment:
                      data = self.transport.receive_segment(segment)
                      if data:
                          self.application.receive_data(data)
       
       
      def main():
      	stack = TCPIPStack()
      	sent_frame = stack.send_message("Hello, World!")
      	stack.receive_message(sent_frame)
      	
      	
      if __name__ == "__main__":
      	main()
      	
      

      2. 運行結果

      3. TCP/IP協議棧中數據封裝的過程:數據的四種形態

      posted @ 2024-09-04 19:16  Guanjie255  閱讀(94)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产熟女真实乱精品51| 中国孕妇变态孕交xxxx| 国产在线精彩自拍视频| 日本精品人妻无码77777| 精品国产一区二区三区大| 磐石市| 中文字幕国产日韩精品| 综合色一色综合久久网| 狠狠综合久久综合88亚洲爱文| 亚洲天堂av免费在线看| 18禁国产一区二区三区| 一区二区丝袜美腿视频| 一本久道久久综合狠狠躁av| 四虎永久免费很黄的视频| 国产精品毛片一区二区| 亚洲中文字幕一区二区| 国产精品自拍午夜福利| 屯留县| 日本丰满人妻xxxxxhd| 亚洲欧美中文日韩V在线观看| 一亚洲一区二区中文字幕| 免费人成视频在线观看网站| 国产精品国产精品国产精品| 亚洲午夜福利网在线观看| 久久热这里这里只有精品| 人妻少妇偷人无码视频| 国产精品不卡区一区二| 成人精品区| 本免费Av无码专区一区| 久久99精品国产99久久6尤物| 免费的很黄很污的视频| 日韩有码中文字幕av| 99久久亚洲综合精品成人网| 好男人社区神马在线观看www| 国产乱码日韩亚洲精品成人| 18成禁人视频免费| 亚洲中文字幕一二区日韩| 国产熟睡乱子伦视频在线播放| 又黄又硬又湿又刺激视频免费| 中文字幕国产精品一二区| 狠狠cao日日穞夜夜穞av|