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


TCP / IP?

 

인터넷 네트워크의 핵심 프로토콜( 프로토콜(Protocol)은 규약이다. 일종의 약속이라는 뜻이다. 커뮤니케이션 하는 컴퓨터들 간에 오류를 최소화함으로써 정보를 원활하게 교환하기 위해 만들어진 규칙의 집합) 으로서. 인터넷에서 전송되는 정보나 파일들이 일정한 크기의 패킷들로 나뉘어 네트워크상 수많은 노드들의 조합으로 생성되는 경로들을 거쳐 분산적으로 전송되고, 수신지에 도착한 패킷들이 원래의 정보나 파일로 재조립되도록 하는 게 바로 TCP/IP의 기능이다.

 

프로토콜인 TCP는 전송할 파일을 좀 더 작은 패킷들로 나누어 인터넷 네트워크를 통해 전송하는 일과 수신된 패킷을 원래의 메시지로 조립하는 일을 담당.

IP는 각 패킷의 주소 부분을 처리해 패킷들이 목적지에 정확하게 도달하도록 하는 기능을 수행한다.

 

예를들어 20명의 사람이 오이도를 가는데 차 1대로 못가기 때문에 여러대의 차를 빌려 나누어 탄다. 그 중 대장은 연락을 통해 목적지를 정하고 그 목적지로 전원이 잘 도착 할 수 있도록 유도 하는 것과 같다.

 

 

클라이언트-서버 통신 모델

 

서버 클라이언트가 요청하는 서비스를 처리

클라이언트 : 서비스를 서버에게 요청

 

한 컴퓨터에서 실행되는 두 프로그램에 클라이언트-서버 모델을 적용하면 데이터 주고받기가 가능

 

접속이 성공하려면 반드시 상대 프로그램이 실행되어야함 동시접속 모델을 사용하면 타이밍문제로 실패확률 높음 따라서 서버-클라이언트 모델을 이용하여 먼저 실행하는쪽을 서버 후를 클라이언트로 하여 해결가능

 

 

네트워크로 연결된 컴퓨터는 반드시 TCP/IP로 연결가능


+ Recent posts