본문 바로가기

Network

(3)
Socket Programming - TCP 세션 수립 및 종료 TCP는 두 종단간 신뢰성 있는 데이터 전송을 보장한다. 이를 위해 TCP에서 어떻게 연결 세션을 맺고 끊는지 알아보며, 마지막에는 Socket API와 TCP flow를 매핑하여 흐름을 알아보자. 1. TCP 3-way handshake 두 장치들 사이에 논리적인 접속을 성립 (establish)하기 위하여 TCP에서 사용하는 방법 - 정확한 전송을 보장하기 위해 상대방 장치와 사전에 세션을 수립하는 과정을 의미한다. TCP 3-way handshaking 과정 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 된다. 서버는 SYN요청을 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 ..
Socket Programming 실습 정말 간단한 에코서버를 TCP소켓과, UDP소켓으로 구현해 보았다. 소켓 API를 어떻게 사용하는지 정도만 알아보는데 참고하면 좋을듯 하다. TCP Socket Client #include #include #include #include #include #include #include #define BUF_SIZE 128 int main(int argc, char *argv[]) { /* * 1. local variable 선언 * * s : socket descriptor * server_addr : server 의 주소를 정의하는 구조체 * ip_addr : server 의 ip address * buf : input, receiver buffer */ int sd; struct sockaddr_in..
Socket Programming - Socket # Index 1. Socket이란 2. Socket과 TCP, Application의 관계 3. Socker 구현 4. Socket API 5. Socket Programming Sequence 6. Socket Close 1. Socket이란 1-1. Socket의 정의 Socket은 파일 디스크립터(fd)를 통해 서로 다른 프로그램간에 정보 교환을 가능하게 해주는 방법이다. 따라서 소켓을 소프트웨어로 작성된 프로그램의 통신 접속점이라고 할 수 있으며, 응용 프로그램 (Application)은 소켓을 통해여 네트워크에 데이터를 송수신 하게 된다. 쉽게 말해 Socket이란, 응용 프로그램 (Application)에서 네트워크에 데이터를 전송하기 위해 사용하는 콘센트(?) 라고 생각할 수 있다. 1-2..