260 likes | 409 Views
Windows Network Programming. Chapter 01. Intro. to Network and Socket Programming. Goal. TCP/IP Protocol Basic concept of socket Windows socket overview Writing and executing of Windows socket application. Router. ①. End System (PC, PDA, ...). ②. ③. Router. ④.
E N D
Chapter 01. Intro. to Network and Socket Programming
Goal • TCP/IP Protocol • Basic concept of socket • Windows socket overview • Writing and executing of Windows socket application
Router ① End System (PC, PDA, ...) ② ③ Router ④ End System (PC, PDA, ...) Internet Configuration
End System End System Application Application TCP/IP Protocol (OS) TCP/IP Protocol (OS) Router Router TCP/IP Protocol
Application Layer TELNET, FTP, HTTP, SMTP, MIME, SNMP, ... Transport Layer TCP, UDP Internet Layer IP Network Access Layer Device Driver Network Hardware TCP/IP Protocol Structure (1/6) • TCP/IP Protocol Structure • Layering Structure
TCP/IP Protocol Structure (2/6) • Network access layer • Role • Data transmission through physical network • Components • Network hardware + device driver • Addressing • physical address(MAC address) • Command: ‘ipconfig /all’ • Example • Ethernet
TCP/IP Protocol Structure(3/6) • Internet layer • Role • Packet routing • Addressing • IP address • Transport layer • Role • Data transfer to end system • Addressing • port number • Examples • TCP(Transmission Control Protocol), UDP(User Datagram Protocol)
TCP/IP Protocol Structure(5/6) • TCP and UDP
TCP/IP Protocol Structure(6/6) • Application layer • Role • Including some application protocol and services • Providing various application service • Examples • Telnet, FTP, HTTP, SMTP etc.
Packet transfer Principle (1/5) • Packet • Control information defined by each protocol (IP address, port number, error check code etc.) + data • Depending on the location, header and trailer
Application data TCP TCP Header data IP IP Header TCP Header data Ethernet Ethernet Header IP Header TCP Header data Ethernet trailer Packet transfer Principle(2/5) • Packet transfer at sender side
Application data TCP TCP Header data IP IP Header TCP Header data Ethernet Ethernet Header IP Header TCP Header data Ethernet trailer Packet transfer Principle(3/5) • Packet transfer at receiver side
Application Layer Application Layer Transport Layer Transport Layer Internet Layer Internet Layer Internet Layer Internet Layer Network Access Layer Network Access Layer Network Access Layer Network Access Layer End system Router Router End system Packet transfer Principle(5/5) • Packet transfer using Internet protocol
IP address and port number (1/3) • IP 주소 • Unique identifier of a internet host • IPv4: 32bit, IPv6: 128bit • example) 147.46.114.70 • example) loopback address: 127.0.0.1 • Port number • Unique process identifier
process process process Port number(0~65535) TCP UDP IP IP address IP address and port number (2/3) • IP address and port number
Client/server model • Client/server Model • Server first executed • When client send the request, server processes the request • Example: web client/server Server Client connecting waiting
socket concept (1/5) • Three points of view ① Data type ② communication end-point ③ Network programming interface
socket concept(2/5) • Data type • Each of client and server is identified by a separate socket address • Example of socket address data type • Struct sockaddr_in, in_addr // file creation int fd = open("myfile", ...); ... read(fd, ...) // Reading write(fd, ...) // Writing // socket creation SOCKET sock = socket(...); ... recv(sock, ...) // Receive send(sock, ...) // Send
socket concept(3/5) • Communication end-point • Socket requires three components • protocol(TCP/IP, UDP/IP) • sender IP address, sender port number • receiver IP address, receiver port number
client send (sock, ...) server recv (sock, ...) data <client socket> • protocol: TCP/IP • IP address: 147.46.114.70 • port number: 12023 <server socket> • protocol: TCP/IP • IP address: 61.72.244.22 • port number: 9001 socket concept(4/5) • Communication end-point(cont’d)
application application application Socket interface TCP UDP ICMP, IGMP IP socket concept(5/5) • Network programming interface • Socket is the interface between application layer and transport layer in TCP/IP protocol stack
Windows sockets (1/3) • Windows Sockets, Winsock • Originated by Berkeley Software Distribution UNIX • Included as API(Application Programming Interface) since Windows 95 version
Windows sockets(2/3) • Winsock supported by windows version • Supported protocols • TCP/IP, IPv6(windows XP or above), IrDA(windows 98 or above), Bluetooth(windows XP SP2 or above), IPX/SPX, ATM, DECNet, TP4(Not supported since windows 2000), DLC(TP4(Not supported since windows XP), NetBEUI(Not supported since windows XP)
Winsock 2.x Application Winsock 1.x Application Winsock 1.x API Winsock 1.x Extended API WINSOCK.DLL (16 bit) WSOCK32.DLL (32 bit) MSWSOCK.DLL Winsock 2.x API WS2_32.DLL (32 bit) TCP/IP IrDA Bluetooth IPX/SPX ... Windows sockets(3/3) • Structure
Winsock application practice • Source code: • Class webpage • Sample Winsock application(server.cpp)