วันอาทิตย์ที่ 27 กันยายน พ.ศ. 2552

Data Communication Project : Design the Augment Stadium

Design the Augment Stadium เป็นโปรเจคใหญ่ของประเทศอังกฤษ ที่เกี่ยวข้องกับการสื่อสารในระบบเครือข่าย Ad-Hoc เพื่อให้ผู้เข้าชมได้ทำการแบ่งปันข้อมูลต่างๆเช่น ความคิดเห็น รูปภาพ และคลิปวีดีโอ ผ่านกันทั่วทั้งสนามกีฬา โดยโปรเจคนี้ เป็นการวิจัยของนักศึกษามหาวิทยาลัยเมืองกลาสโกว์ และทุนของ EPSRC ซึ่งมีบริษัท Microsoft และ ARUP เป็นผู้สนับสนุน โดยที่โปรเจคนี้ มีกำหนดแล้วเสร็จในปี 2010

ความคิดหลักของโปรเจคนี้ คือการสร้างระบบเครือข่ายในสนามกีฬา เพื่อให้ผู้เข้าชมสามารถแบ่งปันข้อมูลกันผ่านเครือข่าย Ad-hoc ระหว่างโทรศัพท์กับโทรศัพท์ ด้วยการเชื่อมต่อแบบ Bluetooth ซึ่งจะทำให้ผู้ชมสามารถส่งข้อมูลถึงกันได้อย่างอิสระ และสามารถอัพโหลไฟล์ต่างๆขึ้นไปยังเว็บไซต์ออนไลน์ต่างๆได้ทันที ซึ่งสามารถแก้ไขปัญหาสัญญาณของโทรศัพท์มือถือในสถานที่ที่มีคนอยู่มากเช่น สนามกีฬา ซึ่งระบบนี้ จะเป็นเปิดให้ใช้สำหรับผู้ชมกีฬาโดยไม่คิดค่าใช้จ่าย โดยที่โปรเจคนี้คาดว่าหากทำได้สำเร็จและมีการใช้ได้จริง จะเพิ่มอัตราการเข้าชมและจำนวนครั้งในการเข้าชมกีฬาอีกค่อนข้างมากเลยทีเดียว

โดยปกติแล้ว การเชื่อมต่อระห่างโทรศัพท์และโทรศัพท์ โดยใช้ระบบ Ad-hoc ยังไม่เป็นที่ยอมรับกันในหมู่กว้างนักและยังไม่เคยมีการเอาออกมาใช้จริง ตัว Bluetooth นั้นเองก็นำมาใช้เพื่อส่งผ่านข้อมูลระหว่างมือถือไม่กี่เครื่อง และการเชื่อมต่อกับอุปกรณ์ต่างๆเช่นหูฟัง เป็นต้น แต่ในโปรเจคนี้ นักวิจัยจะทำการเพิ่มขีดความสามารถและทำให้การเชื่อมต่อนี้ สามารถเชื่อมต่อโทรศัพท์ได้พร้อมกัน 7 เครื่องโดยไม่ต้องอาศัยเสาสัญญาณ โดยเพียงติดตั้งโปรแกรมเล็กๆลงในโทรศัพท์มือถือซึ่งจะเพิ่มขีดความสามารถในการเชื่อมต่อของโทรศัพท์มือถือให้รวดเร็วและทำให้การส่ง่านข้อมูลลื่นไหลขึ้น

ผลพวงที่ได้จากโปรเจคนี้ในระยะยาว สามารถนำประยุกต์ใช้ได้ในเหตุการณ์ต่างๆ เช่น เมื่อเกิดอุบัติเหตุ หน่วยแพทย์และบุคคลที่อยู่ในเหตุการณ์ สามารถส่งขอความช่วยเหลือไปยังบุคคลหรือหน่วยงานที่ใกล้ที่สุด ในสถานการณ์ที่อยู่ในที่อับสัญญาณโทรศัพท์ไม่สามารถโทรศัพท์หรือส่งข้อความแบบปกติได้

วันอังคารที่ 22 กันยายน พ.ศ. 2552

week 13 : Application layer

Application Architectures
- Client and server
- Peer to peer
- Hybrid of client server

Host-based Architectures - everything is in one machine(mainframe)

Problems with Host-based Architecture
- Host becoming a bottleneck : Everything is on a server, server has to do all processing
- Upgrade typically expensive and "lumpy"

Client-based Architectures
- Client need a high performance
- Server keep data but no processing
- When client want information of someone, Server can send just whole data and Client need to find by themself

Client-Server Architectures (Used by most network today)
- Client no need very high performance (don't have to spend a lot of money)
- When Client want information of someone, Server can send just that information to Client

Advantage of Client-Server Architectures
- Advantages
- More efficient because of distributed processing
- Allow hardware and software from different vendors to be used together
- Disadvantage
- Difficulty in getting software from different vendors to work together smoothy
- May require Middleware, a third category software

Fat vs. Thin Clients
- Fat clients do a lot of work in client based Architecture
- Thin client is an easy machine(low cost machine) which can control user not to use unlicensed program

Criteria for choosing Architecture
- Infrastructure Cost : Cost of hardware
- Development Cost : Develop on mainframe, cheaper than develop on Client, Server
- Scalability : Can add new server is cheaper cost than mainframe

3-Tier Architecture
- Client (microcomputer)
- Application server (microcomputer)
- Database server (microcomputer, minicomputer or mainframe)
- Application server and Database server are divided to do part of logic but both of them don't have to do much work

N-tier Architecture
- Data have to travel along network from client side to server side
- Database server can divide in more than 1 tier (having another tier), if Database server reply something, it needed to pass to every server

Multi-tier Architectures
- Advantages
- Better load balancing
- More stable(if server work hard, just add more server)
- Disadvantages
- Heavily loaded network
- Difficult to program and test due to increased complexity

DNS - Domain Name Services - Use to translate URL (DNS) to IP address

How DNS works
1. Assume that Susie asks for a web page on Indiana University's server by access in www.susie.indiana.edu from University of Torronto
2. Client will ask DNS server that know Susie or not
3. If no, Ask Root that know Susie or not
4. If no but know Indiana, Send request to Indiana
5. Then send result back to Susie at Torronto


วันจันทร์ที่ 21 กันยายน พ.ศ. 2552

week 12 : Network and Transpot Layer cont.

In IPv4 addressing, a block of address can be defined as x.y.z.t/n (/n is a number of mask)
The first address (network address) in the block can be found by setting the rightmost 32 - n bits to 0s
The last address in the block can be found by setting the rightmost 32 - n bits to 1s
The number of addresses in the block can be found by using the formula 2 power 32 - n

The first address can be found by ANDing the given addresses with the mask
The last address can be found by ORing the given addresses with the complement of the mask
The number of address can be found by complementing the mask, interpreting it as a decimal number, and adding 1 to it

Private address
- easy in the future if want to connect to internet
- security(hide machine from internet)
- can use only 1 public IP for many user

Translation table (for router) use to convert IP and send data in to correct client
IPv6 uses 16 byte (128 bits) addresses but v4 use just 32 bits (problem of v4 is number of addresses)
Dual stack - OS or machine know 2 versions of IP address (If machine need to send data, version that want to send it up to destination - ask DNS first what version that destination can receive)

Dynamic address - not require fix address
Bootstrap protocol - Client will get same IP address (If machine doesn't turn on , no-one can use that IP)

Routing Protocol
Autonomous System - maintain whole system
Types of routing protocol
1.interior routing protocols - use inside 1 AS
2.Exterior routing protocol - use between AS
Types of Routing
1.centralized routing - one center computer
2.Decentralized routing (static routing, dynamic routing)




วันอังคารที่ 8 กันยายน พ.ศ. 2552

week 11 : Network and Transport layer cont.

Middleware - Don't have to worry about network
Ex. Open database connectivity(ODBC) - Middleware of database

Network layer
Connection - VC network
Connectionless - Datagram network
Analogous to the transport-layer services but,
- host to host
- No choice

Virtual circuit
choose the right path to application, need to call setup first

VC implementation (consist of:)
1.Path from source to destination
2.VC number
3.forwarding table(map of router) in routers along path

Signaling protocol
- use in ATM
- not used in today's internet

Datagram network
- no call setup (connectionless)
- routers

Network layer function
Addressing
- Assignment of address
- Translation (translation process is called address resolution)
Routing
Assignment of address
- Application layer address (URL)
- Data link layer address (MAC address, unique address)

IPv4 Address
- 4 byte, 32 bits address
- Dotted decimal notation (seperate by dot)

Classfull Adressing
Class A : 0 - 127
Class B : 128 -191
Class C : 192 - 223
Class D
Class E

Netid - just specific number
Network address - both Netid and Hostid






วันอาทิตย์ที่ 6 กันยายน พ.ศ. 2552

week 10 : Network and Transport Layers

Transport and Network Layers
Network Layers = source to destination
Transport Layers = program to program

Transport Layer
- Responsible for end-to-end delivery of messages
- Responsible for segmentation ( divide large data to small pieces ) and reassembly (make it be original data)

Internet transport-layer protocols
- Reliable (TCP) - Before it can send data it has to establish connection first
  • congestion control - If high traffic reduce speed of sending data
  • flow control - recieve data correctly by order
  • connection setup - need to connect first
- Unreliable (UDP) - It doesn't do anything that TCP does, just help sending program to destination (UDP works faster)
  • no-frills extension of "best-effort" IP
- Service not available
  • delay guarantees
  • bandwidth guarantees (Shared by a lot of users)
Network Layer
- Responsible for addressing (Assign unique address) and routing (Major task and find the best part from source to destination ) of messages

Transport vs. Network layers
- Network layer = between host
- Transprot layer = between process

Transport Layer function
- Establish connection
  • Connection Oriented
  • Connectionless
  • Quality of service

Linking to Application Layer
- Port number = use number to connect program to another program, 2 bytes is each source and destination

Packetization = Break a large message into a small pieces
Reassembly = Put them back together at the destination

Three ways handshake
1. Client host sends TCP SYN segment to server
2. Server host recieves SYN, replies with SYNACK segment
3. Client recieves SYNACK, replies with ACK segment

Closing connection
1. Client end system sends TCP FIN control segment to server
2. Server recieves FIN, replies with ACK
3. Client recieves FIN, replies with ACK
4. Connection closed

QoS - Try to guarantees something
- Timeliness - time to delivery of packets
- QoS routing ( realtime, choose parts that give the best bandwidth)

Socket programming - Allow to create network program without go deep in TCP