SYSTEM PROGRAMMING

TCP/IP 소켓 프로그래밍 04. TCP와 UDP에 대한 이해

뉴암스테르담 2015. 8. 5. 21:26
TCP/IP 소켓 프로그래밍 04. TCP와 UDP에 대한 이해  시스템프로그래밍 

2013.03.19. 21:34  수정  삭제

복사http://blog.naver.com/pwk0810/40184451809

전용뷰어 보기

TCP 기반 소켓의 경우 '스트림 기반 소켓' 으로 Transmission Control Protocol 의 약자로서 '데이터 전송 과정의 컨트롤' 이라는 뜻을 담고 있다.

 

+ TCP / IP 기반 프로토콜 스택

 

+TCP / IP 프로토콜 탄생 배경

 

+ 개방형 시스템 (Open System )

 

  • 표준화 작업을 통한 개방형 시스템 (Open System) 의 설계
  • 객체 지향의 탄생 배경에도 소프트웨어 발전을 위해서는 표준이 필요하다는 생각이 큰 몫을 함
+LINK 계층
  • LINK 계층은 물리적인 영역의 표준화에 대한 결과이다. 
  • LAN, WAN, MAN 과 같은 네트워크 표준과 관련된 프로토콜의 정의하는 영역
+IP 계층
  • 목적지로 데이터를 전송하기 위해서는 중간에 어떤 경로를 거칠것인가? 를 해결하는 것이 IP 계층.
  • IP 자체는 비 연결지향적이며 신뢰할수 없는 프로토콜이다.
+TCP / UDP 계층
  • 경로를 기준으로 데이터를 전송
  • TCP 는 신뢰성 있는 데이터의 전송을 담당
  • IP는  오로지 하나의 데이터 패킷 ( 데이터 전송의 기본 단위) 이 전송되는 과정에만 중심을 두고 설계
  • 데이터를 주고 받는 과정에서 서로 데이터의 주고 받음을 확인한다면, 그리고 분실된 데이터에 대해서 재전송 .. 
  • IP의 상위 계층에서 호스트 대 호스트의 데이터 송수신 방식을 약속하는 것이 TCP , UDP 이다.
  • TCP 는 확인 절차를 거쳐서 신뢰성 없는 IP 에 신뢰성을 부여한 프로토콜이다.
+APPLICATION 계층

04-2. TCP 기반 서버, 클라이언트 구현

+TCP  서버에서의 함수 호출 순서
SOCKET() - BIND() - LISTEN() - ACCEPT() - READ()/WRITE() - CLOSE()

+ 연결 요청 대기 상태로의 진입
  • int listen(int sock, int backlog);
  • 서버가 '연결 대기 상태'에 있다는 것은 클라이언트가 연결 요청을 했을때 연결이 수락될때 까지 연결 요청 자체를 대기시킬수 있다는 것을 의미 ( backlog );
+ 클라이언트의 연결 요청 수락
  • int accept(int sock, struct sockaddr *addr , socklen_t addrlen ) ;
  • 연결 요청 대기 큐에서 대기중인 클라이언트의 연결 요청을 수락하는 기능의 함수
+TCP 클라이언트의 기본적인 함수 호출 순서
  • SOCKET() - CONNECT() - READ() / WRITE() - CLOSE() 
  • int connect(int sock, const struct sockaddr* serveraddr, socklen_t addrlen);
04-3. Iterative 기반의 서버 , 클라이언트 의 구현
댓글수0