수업/Network Programming 13

[Network Programming] TCP socket 통신

> TCP API 호출 순서 TCP Server 1. socket #include int socket(int domain, int type, int protocol); 우선 socket을 생성하기 위해선 socket 함수를 사용해야한다. 첫번째 인자로는 만들 socket이 사용할 Protocol Family(프로토콜 체계) 정보를 전달하고, 두번째 인자로는 소켓의 데이터 전송 방식에 대한 정보를 전달한다. 마지막 인자로는 통신에 사용할 프로토콜을 전달한다. 세 인자 모두 프로토콜과 관련있다, 즉 생성할 socket이 어떤 프로토콜을 써서 통신할지를 인자로 줘서 socket을 만드는 것이다. 성공 시 생성된 socket의 file descriptor, 실패 시 -1 을 반환한다. > Protocol Fam..

[Network Programming] Network Socket Programming 개요/기초

이 과목에선 Socket을 통해 Application Layer의 프로그램을 개발하는 것을 중점으로 한다. OS에서 제공해주는 네트워크 관련 API(Application Programming Interface)를 활용하는 것이 주된 목표이다. Client-Server model을 주로 다루며, kernel level이 아닌 user-level programming을 한다. Socket을 생성해서 사용하면 Application 아래 Layer의 내용은 감춰진다. 즉, 응용 프로그래머는 이 Socket을 기반으로 Application 계층의 완성에 집중하게 된다. Client-Server model 1 : Iterative Server (with UDP) Client-Server model 2 : Concu..

[Network Programming] TCP/IP

Addressing (위 그림은 TCP/IP model 이다. 원래는 4계층으로 나뉘었는데, 요즘 저렇게 5계층으로 나누기도 한다고 함.) 각 계층마다 사용하는 address의 종류가 다르다. 예를들어 Data link layer에선 같은 Network 내 통신을 위해 랜 카드에 부여된 주소인 Mac address를 사용한다. IP Address Classes IP Address의 앞부분은 어떤 네트워크인지 나타내는데 쓰이고, 뒷부분은 해당 네트워크 내의 어떤 host인지 나타내는데 쓰일 수 있다. 그 영역의 크기에 따라 Class A/B/C로 구분한다. Class A의 네트워크가 가장 많은 host를 보유할 수 있다. 교수님께서 말씀하시길 경북대는 Class B라고 하셨다. 하지만 이런 방식은 공간 낭..