Socket 基本觀念.

Slides:



Advertisements
Similar presentations
第五章 網際網路 5-1 網際網路的歷史沿革 5-2 網際網路基本運作原理 5-3 連線媒介與連線上網 5-4 網際網路上的熱門應用
Advertisements

《网络基础与Internet应用》.
第 8 章 IP 基礎與定址.
2.4 计算机网络基础 什么是计算机网络? 计算机网络有哪些功能? 计算机网络的发展历史? 计算机网络体系结构的内容? 计算机网络如何分类?
第7章 防 火 墙 技 术 7.1 防火墙概念 7.2 防火墙原理及实现方法 7.3 防火墙体系结构 7.4 防火墙的构成
第 12 章 UDP 與 TCP.
第三章 網際網路和全球資訊網 : 電子商務基礎建設
第一章 概 述.
马志强 软件学院501室 网络应用开发 马志强 软件学院501室
Chapter 12 UDP 與 TCP.
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
计算机网络.
计算机网络的组成 资源子网:   主机 终端 终端控制器   外设 软件资源 信息资源    .
计算机网络 暨南大学计算机科学系 学年 第一学期.
第1章 概述.
Foundations of Computer Science Chapter 6 電腦網路
第7章 路由技术 7. 1 广域网技术概述 7. 2 IP子网间的路由技术 7. 3 访问控制列表 7.4 网络地址转换(NAT)技术.
TCP Session Hijack 郭军权
Socket.
網路基本概念與設定方法 林文宗 資管系助理教授
第5章 网络软件 开发技术 (一) 软件开发技术基础 计算机教学实验中心.
计算机网络实验介绍 信息网络实验室 2017/9/13 04:55:22.
網路概論.
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
Advanced Sockets Programming
第 12 章 UDP 與 TCP.
TCP、UDP 通信实践 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
網路基本概念 本章主要是為讀者建立有關網路的基本知識, 作為後續章節的基礎。首先我們會說明網路的基本概念, 接著介紹網路的各種類型與相關的作業系統, 最後則是介紹 OSI 與 DoD 等兩種網路模型, 讓讀者能進一步了解網路運作的方式。
利用 ISA Server 2004 建置應用層防護機制
計中「多媒體與網路應用」短期訓練課程 FTP server 架設 (in Windows)
通訊協定 OSI分層模式 與 TCP/IP協定
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
第六章 差错与控制报文 (ICMP).
Socket Programming in C
第五章 網際網路 5-1 網際網路的歷史沿革 5-2 網際網路基本運作原理 5-3 連線媒介與連線上網 5-4 網際網路上的熱門應用
Socket () and TCP client-server
TCP和UDP基本原理.
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
考试题型 填空题(30) 选择题(20) 名词解释(10) 问答题(24) 计算题(16) 附加题(30) 成绩核算:
第4章 OSI傳輸層.
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2010
江西财经大学信息管理学院 《组网技术》课程组
使用Windows2003 Server R2 伺服器架設暨網路原理.
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
第 17 章 網路規劃 著作權所有 © 旗標出版股份有限公司.
第十三章 TCP/IP 與 Internet 網路連結技術
第2讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
TANet PROTOCOL ANALYSIS - WIRESHARK - 350.
Westmont College 网络应用软件 第一讲 (客户-服务器 概念, 协议端口的使用, 套接字API)
Network Application Programming(3rd Edition)
Advister: Quincy Wu Speaker: Chenglin Tsai Date:3/26
3.1 通訊協定 3.2 開放系統參考模式(OSI) 3.3 公眾數據網路 3.4 TCP/IP通訊協定
3 電子商務技術.
傳輸控制協議 /互聯網協議 TCP/IP.
Source: Journal of Network and Computer Applications, Vol. 125, No
NAT技术讲座 主讲:周旭 大唐电信科技股份有限公司光通信分公司 数据通信部.
講員:游文志 排程系統教育訓練 後台管理系統 講員:游文志
面向非连接的 SOCKET编程 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
大学计算机基础 5-2 计算机网络模型与协议.
2019/5/3 JAVA Socket(UDP).
指導教授:梁明章 A 許之青 國立高雄大學 2010/06/25
第三章 網路技術.
IP Layer Basics, Firewall, VPN, and NAT
Speaker : 翁瑄伶 Advisor : 柯開維 博士 Date: 2016/07/31
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
Internet课程设计 教师:陈 妍 朱海萍 西安交通大学计算机系
IP Layer Basics & Firewall
主讲人:徐悦甡(16年入职) 课程:数据通信与计算机网络 软件学院
Presentation transcript:

Socket 基本觀念

outline Socket introduction Network OSI layer How to do socket? example

Socket introduction 什麼是 SOCKET ? SOCKET是一組具體的UNIX系統呼叫,是 80 年代美國的研究單位, 研究在UNIX中接納TCP/IP軟體的問題,並使其亦適應於其它場合.所以研究者們創造一種新的通訊介面,盡可能使用現有的UNIX系統呼叫, 然後為支援那些不易被整合於現有函式庫的TCP/IP函數, 新定義了一些系統呼叫函數,這便是承接口介面( SOCKETINTERFACE )至今已被廣泛的認可與應用, 成為一種標準了.

Socket Pair 讓我們了解一下什麼是 Socket Pair 。所謂 socket 就是一個‘ IP 位址’加上一個‘ TCP/UDP Port ’﹐代表了一個連線與哪台機器( IP 位址)﹑及與機器上那一隻程式( Port ) 相連的。我們同時也知道﹕一個連線必須有兩個端點﹕來源地( Source ) 和 目的地( Destination ) 。換句話說﹐我們一個連線就是與一對 socket 相連著﹕分別是 Source Socket ( Source Address & Source Port) 與 Destination Socket ( Destination Address & Destination Port ) ﹐合起來我們稱之為 Socket Pair ﹕

連線方向 A B 我們已經知道 Socket Pair 事實上就是兩個 socket ﹕一個是 Source﹑另一個是 Destination。但﹐這是相對而言的﹐為什麼這麼說﹖ 因為﹐我們要成功的建立一個 TCP/IP 連線﹐其連線必須是雙向的﹕假設連線是 A 與 B 之間的兩台機器。當封包從 A 送往 B 的時候﹐A 的 Scocket 是 Source Socket﹑而 B 則是 Destination Socket ﹔反過來﹐當封包從 B 送回 A 的時候﹐那麼 A 的 Socket 就變成 Destination﹑而 B 則變成 Source

Network OSI layer Internet為全世界最廣為接受的網路協定,幾乎任何網路都支援Internet IP網 路層協定,舉凡Ethernet、Token Ring、FDDI、Serial Line的SLIP (Serial Line IP)、PPP (Point-To-Point) ,甚至IBM 的SNA網路、Digital 的DECNET網路 都訂定 有與IP網路層協定共通的網路傳輸協定 http://dns-learning.twnic.net.tw/internet/intro5.html

應用層 (Application Layer) 各種網路應用如 telnet、Ftp、WWW、Email、News、BBS等。

傳輸層 (Transport Layer) 負責網路連接之建立、分割/組合傳送訊息、提供使用節點間資料流量的控制、決定提供網路資料傳送的服務品質等。提供可靠、有效率的連接給網路應用節點使用。

網路層 (IP Network Layer) 承接傳輸層傳送的封包,依所欲傳送的位址自動Route轉送路徑、轉換不同協定的封包格式、監控網路流量狀況,動態建構網路整體拓樸架構,動態提供最佳的Route資料傳送路徑。Internet網路層協定為 IP(Internet Protocol)。

鏈接層 (Network Access Layer) 承接網路層傳送的封包,做更細的資料框(Frame)的切割/組合、檢出/更正錯誤的傳送資料、運用ACK 判斷資料的正常傳送與控制傳送速度,及負責傳送由0與 1組成的原始網路資料。

How to do socket? 開啟 Socket介面 Binding Socket地址 Connection的建立 傳輸網路資料

server Client

開啟 Socket介面 Socket 就如同傳輸管道的出入口,建立傳輸應用的兩端點須各自開啟一Socket,往後的資料傳送,均依賴 read(送入此Socket)或 write (由Socket讀出) 資料。需給AF_INET(socket family)、SOCK_STREAM (socket type)、protocoltype等參數。

Binding Socket地址 Socket 出入口需Binding到TCP address,網路上的電腦主 機才可以依據使用者所指定的TCP address,建立資料傳送的通道。TCP address 包含IP address (如140.115.17.111) 及TCP Port number。我們熟悉的網路應用: telnet 140.115.17.111 23與ftp 140.115.17.111 21,均需依據所指定的 host IP與 Port,建立連接、傳輸資料

Connection的建立 電腦主機可以使用Binding TCP address後的Sock et,建立資 料傳送通道(圖二)。Server/Client 的傳輸模式,Server 端需呼叫accept() 功能,等待Client的連接建立要求。Client端則呼叫connect()功能,要求與Server主機建立連接通道。

傳輸網路資料 Client與Server主機間成功地建立連接通道後。兩端均可藉由各自的Socket出入口,read 或write 資料到對方。

關閉 Socket介面 當應用程式不再使用Socket 出入口做資料傳送時 ,需關閉Socket

example: server主機執行命令例:serv & sock = socket(AF_INET, SOCK_STREAM, 0); name.sin_family = AF_INET; name.sin_addr.s_addr = INADDR_ANY; name.sin_port = 5000; bind(sock,(struct sockaddr *)&name, sizeof (name) ); msgsock = accept(sock,(struct sockaddr *)0, (int *)0); rval = read(msgsock, buf, sizeof(buf)); printf("The Message is %s \\n",buf); ....... Close(msgsock); close(sock);

Client主機 執行命令例:clnt sparc105000 sock = socket(AF_INET, SOCK_STREAM,0); server.sin_family = AF_INET; hp=gethostbyname(argv[1]); bcopy((char*)hp->h_addr, (char*) &server.sin_addr,hp->h_length); server.sin_port = 5000; connect(sock, (struct sockaddr*)&server, sizeof(server)) wrval = write(sock, "Hello!",6 ); close(sock);