TCPUDP의 차이점을 설명하라

 

TCP = 연결지향형 전송규약으로 연결 설정 후 통신 가능

데이터를 재전송하여 신뢰성 있는 데이터 전송

일대일 통신, 데이터 경계 구분 X(바이트 스트림 서비스)

 

UDP = 비연결 지향형 전송규약으로 연결 설정 없이 통신 가능

데이터 재전송을 하지 않아 신뢰성이 떨어진다.

일대다 통신, 데이터 경계 구분(데이터 그램 서비스)

 

 

TCP/IP 프로토콜 구조

 

네트워크 접근 계층 : 물리적 네트워크를 통한 실제 송수신 담당

네트워크 하드웨어, 운영체제가 제공하는 장치 드라이버

하드웨어적으로 정의된 물리주소 사용

인터넷 계층 : 논리 주소인 IP주소를 사용하여 데이터를 목적지 호스트 까지 전달

전세계적으로 유일성 보장

라우팅) 데이터를 목적지 까지 전달하는 작업

전송 계층 : 최종 통신 목적지를 지정하고 오류 없이 데이터를 전송하는 역할 포트 번호 사용

전송 계층에 해당하는 TCP/IP 프로토콜로는 TCP, UDP가 있다.

응용 계층 : 프로토콜을 사용하는 응용프로그램 포괄

 

 

SOCKET

 

1. 데이터 타입

2. 통신 종단점

3. 네트워크 프로그래밍 인터페이스

 

 

 

 

 

 

OSI 7계층

 

리계층 : 단말 시스템 간의 물리적 링크를 가동, 유지, 전기적, 기계적 기능적 절차 정의 계층

데이터링크 계층 : MAC 주소를 이용하여 호스트에서 다른 호스트로

네트워크 계층 : 두 단말 간의 논리적 주소로 경로 선택 및 라우팅 제공

트랜스포트 계층 : 신뢰성 있는 서비스 제공 하기 위해 논리적 연결 수행

세션 계층 : 두 응용프로그램 간의 연결 설정, 이용 및 연결 해제 등 대화를 유지하기 위한 수행

프레젠테이션 계층 : 데이터를 표준 포맷으로 교환, 암호화 복호화, 압축과 복원 수행

어플리케이션 계층 : 유용한 작업을 할 수 있도록 지원하는 계층

 

 

TCP 동작

 

1. Client

Socket함수를 통하여 소켓을 생성 후 Connect 함수를 통하여 연결 요청을 한다.

서버에서 승인이 되면 서버와 통신 후 소켓을 닫는다.

 

2. Server

Socket함수를 통하여 소켓 생성 후 Bind함수로 지역IP주소와 지역 포트번호를 결정

Listen 함수를 통하여 대기 상태로 변경 한다음. 클라이언트로부터 요청시

Accept 한 후 통신 후 소켓을 닫는다.

 

 

블로킹 소켓과 논블로킹 소켓

 

블로킹 소켓 : 버퍼의 여유공간 보다 작을 경우 프로세스는 대기 상태

크기만큼 데이터 복사가 일어난후 send가 리턴을 한다.

 

넌 블로킹 소켓 : 실제 복사한 만큼 바이트 수를 리턴 한다. 최소 1 최대 len


스레드 동기화 기법

 

임계영역(cs)

: 공유 자원에 대해 오직 한 스레드의 접근만 허용 한다.

( 한 프로세스에 속한 스레드 간에만 사용 가능 )

단점 :어떤 스레드가 먼저 진행 될지 모르기 때문에 프로그래머가 제어 불가능.

 

뮤텍스

: 공유 자원에 대해 오직 한스레드의 접근만 허용 한다. 대기열 구조

( 서로 다른 프로세스에 속한 스레드 간에도 사용 가능 )

 

세마포어

: 한정된 개수의 자원에 여러 스레드가 접근 할 때, 자원을 사용 할 수 있는

스레드 개수를 제한 한다.

세마포어 에서는 카운트가 하나씩 줄어들게 되며 리소스가 모두 사용중인 경우 카운트 0

그 다음 작업은 대기




'프로그래밍 > 네트워크프로그래밍' 카테고리의 다른 글

TCP / IP 란?  (0) 2019.02.05

+ Recent posts