Phase 4: Network For ACM05, By Mu LI.

Slides:



Advertisements
Similar presentations
Web ICQ 組別 第 10 組 胡藤耀 沈育澤 李逸聖
Advertisements

5.9 TCP 的运输连接管理 1. 运输连接的三个阶段 运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。 连接建立过程中要解决以下三个问题: 要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。
第 12 章 UDP 與 TCP.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
华夏证券之殇 刘洋 林祺俊 吴哲.
Chapter 12 UDP 與 TCP.
计算机网络安全技术实验 启动虚拟机、GIF、measpoilt、.
计算机网络的组成 资源子网:   主机 终端 终端控制器   外设 软件资源 信息资源    .
数据转发过程.
Add your company slogan
Foundations of Computer Science Chapter 6 電腦網路
第 7 章 运输层 基本内容 传输层的概念,TCP/IP体系中的传输层,端口的概念,用户数据报协议UDP,传输控制协议TCP,TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。 重点掌握 TCP/IP体系中的传输控制协议TCP:TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。
NetGuru 創新 網路通訊實驗教學解決方案 PART I TCP/IP通訊協定深入剖析/以NetGuru實作
Netman Linux 的防火牆設計與應用 Netman
第一章 網路攻防概述.
Socket.
網路基本概念與設定方法 林文宗 資管系助理教授
Author: Shigeki Takeuchi,Hiroyuki Koga, Katsuyoshi Iida,
Lab312.
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
Advanced Sockets Programming
第 12 章 UDP 與 TCP.
計中「多媒體與網路應用」短期訓練課程 FTP server 架設 (in Windows)
通訊協定 OSI分層模式 與 TCP/IP協定
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
第六章 差错与控制报文 (ICMP).
Socket Programming in C
Socket 基本觀念.
TCP和UDP基本原理.
TCP报文格式.
TCP/UDP協定 10-1 TCP/UDP簡介 10-7 採用TCP或UDP 10-2 連接埠編號 10-8 UDP標頭格式
HL-003 以太网高级技术 ISSUE 1.1 江西陶瓷工艺美术职业技术学院.
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
利用Netflow即時偵測蠕蟲攻擊 報告人:王明輝 報告日期:民國95年11月2日.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
第十讲 TCP协议 协议概述 报文段格式 差错控制 流控和拥塞控制 TCP连接管理 TCP性能问题 TCP软件设计 2018/12/7
第4章 OSI傳輸層.
第4讲 传输层之二 本讲目的: 本讲概述: Internet传输层的实现和实例 面向连接的传输: TCP TCP拥塞控制 拥塞控制原则
计算机网络(第 5 版) 第 5 章 传输层.
计算机网络 Computer Network
Chapter 12 傳輸控制通訊協定.
计算机网络 第 7 章 运输层 课件制作人:谢希仁.
實驗目的 明瞭可靠傳輸層的基礎觀念 TCP協定下區段資料傳送的格式
第七讲 网际协议IP.
NS2 – TCP/IP Simulation How-Wei Wu.
第5讲 网络层 本讲目的: 概述: 理解网络层服务原理: 因特网的实现实例 网络层的服务 路由选择原理 分层的路由选择 IP协议
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
第十三章 TCP/IP 與 Internet 網路連結技術
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
Westmont College 网络互连 Part 4 (传输协议, UDP and TCP, 协议端口)
Web Server 王宏瑾.
Westmont College 网络应用软件 第一讲 (客户-服务器 概念, 协议端口的使用, 套接字API)
Advister: Quincy Wu Speaker: Chenglin Tsai Date:3/26
使用WireShark解析TCP封包 Computer Network Lab2.
Wireshark DNS&HTTP封包分析
3.1 通訊協定 3.2 開放系統參考模式(OSI) 3.3 公眾數據網路 3.4 TCP/IP通訊協定
  传输控制协议 TCP TCP TCP 发送端 接收端 应用进程 应用进程 向发送缓存 写入数据块 从接收缓存 读取数据块 … …
第 5 讲 数据链路层(1) 1/31.
傳輸控制協議 /互聯網協議 TCP/IP.
Source: Journal of Network and Computer Applications, Vol. 125, No
Speaker : Chang Kai-Jia Date : 2010/04/26
SOCKET( ).
2019/5/3 JAVA Socket(UDP).
指導教授:梁明章 A 許之青 國立高雄大學 2010/06/25
IP Layer Basics, Firewall, VPN, and NAT
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
Link Layer &一點點的Physical Layer
IP Layer Basics & Firewall
Homework 3.
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
Presentation transcript:

Phase 4: Network For ACM05, By Mu LI

The Goal Implement a full-duplex, reliable, byte-stream communication with no size limits. Write a chat-room program to test your codes.

The network layer of nachos IP Address  LinkAddress Port Number  Port Number UDP  Embedded in Machine.NetworkLink UDP Packet  Machine.Packet TCP  Embedded in the Network Package TCP Packet  Network.MailMessage TCP Network Daemon  Network.PostOffice TCP Socket  Tuple of (SrcLinkAddr, DestLinkAddr, SrcPort, DestPort)

A Graphic Example Provided

Codes provided machine.NetworkLink.java – provides ordered, unreliable, transmission of limits size packets between nodes machine.Packet.java – transmission unit ID (1 byte) Dst Link Src Link Content Len Data (<= 28 byte)

Your work Define the message formats over Packet.java Design a socket states transition table

A sample format The control bit (FIN, …) take one bit, resp. and is in effect when 1 Blank is just for keeping regular ID (1 byte) Dst Link Src Link Content Len Dst Port Src Port Blank (1byte+4bit) F I N S T P A C K Y Sequence No (4 byte) Data (<=20 byte)

Message Types The message is the type iff all correspond control bits are 1 and the others are 0 Type Control bit Description SYN 请求同目标机器建立连接 SYN/ACK SYN, ACK 同意建立连接 DATA - 数据包 ACK 回答数据包 STP 使对方停止向己传输数据 FIN 通知对方己方数据传输已完成 FIN/ACK FIN, ACK 回答完成通知

The states for socket Name Description Duty CLOSED 无连接 等待连接或者连接已结束 SYN_SENT 已发送SYN 等待SYN/ACK SYN_RECVD 接受到SYN 调用accept() ESTABLISHED 全双工连接已建立 发送接受数据 STP_SENT 已发送STP 不过要将未发送完的数据发完 STP_RECVD 接受到STP 不再发送,不过可以接受 CLOSING 发送FIN 等待FIN/ACK,连接结束

The Events Cause Transition Name Property Description CONNECT 主动调用 程序调用connect() ACCEPT 程序调用accept() RECV 程序调用read() SEND 程序调用write() CLOSE 程序调用close() TIMER 系统自动调用 SYN 接受到数据 接受到SYN包 SYNACK 接受到SYN/ACK包 DATA 接受到DATA包 ACK 接受到ACK包 STP 接受到STP包 FIN 接受到FIN包 FINACK 接受到FIN/ACK包

States Transition Table Cur. State Event New State Operation CLOSED CONNECT SYN_SENT Send(SYN), block等待SYN/ACK RECV - 取数据出队,队为空时失败 SYN SYN_RCVD FIN Send(FINACK) (由于有可能FINACK丢失) TIMER Send(SYN) Deadlock! (双方都等待对方SYN/ACK) SYNACK ESTABLISHED 叫醒等待connect()的线程 DATA, STP, FIN 取数据出队 SEND 列数据入队,移动发送窗口 CLOSE CLOSING STP_SENT 如果发送队列为空,send(FIN) 否则send(STP) 重新发送未收到回答的包 Send(SYN/ACK) DATA 列包入队,send(ACK) ACK 转移发送窗口 STP STP_RCVD 清空发送队列 清空发送队列,send(FIN/ACK)

Class: MailMessage 持有其所对应的machine.Packet格式的对象packet 发送时使用NetworkLink.send()发送packet 重载hashcode()使得其与对应的packet有相同的hash,以便查找

Class: Socket Socket类保存一个端对端的全双工通讯的信息 Socket类继承自machine.Openfile

Socket.Read() 从接收缓冲队列receiveBuffer中读取字节,无等待的返回实际读到的字节数 receiveBuffer中消息按照先后顺序存放至多16个MailMessage,顺序是PostOffice保证的

Socket.Write() 将所需要写的字节分割打包成MailMessage 列队入发送窗口队列sendWindow 当sendWindow满了时,列队入发送缓冲队列sendBuffer

Class: PostOffice PostOffice类是实现状态转移的核心类,它管理所有的消息的发送与接受,维护所有的socket状态 运行时候只有一个实例,内部维护5条进程: 处理中断的receiveHandler和sendHandler 收发消息的receiveThread和sendThread 定时启动发送消息的timeoutThread

Class: NetProcess 主要任务是处理两个新的sysvcall: syscallConnect syscallAccept 首先新建相应的socket,将socket加入进程的descriptor table和PostOffice的socket table。然后维护socket状态,发送SYN,一直等待收到SYN/ACK才返回 syscallAccept 取出SYN,根据消息取出对应的socket,将socket放入进程的descriptor table,维护socket状态

Thank you Q & A