본문 바로가기

미분류 과제물(미완성 포함)

프로그래밍 교양: OSI 4층 전송계층

전송 계층은? OSI 4층에 해당하며 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요한 계층이다.

 

역할 달성을 위해 두가지 기능을 가지고 있다.

- 오류 점검 기능: 오류 발생 시 데이터를 재전송함

- 전송된 데이터의 목적지가 어떤 어플인지 식별하는 기능 

 

통신 단위는 세그 먼트이며 프로세스를 정의하기 위해 포트 번호를 사용한다. 

 

 

1. 전송계층 통신방법

 

 

전송형 계층의 통신 방법으로는 연결형 통신, 비연결형 통신이 있다. 

연결형 통신은 신뢰성과 정확성을 띄고 비연결형은 앞선 두 특성이 없지만 전송 속도가 빠른 효율성을 띈다.

 

연결형 통신 방법에는 TCP 프로토콜, (보낼까요?, 네 보내세요, 보냈습니다, 받았습니다, 확인했습니다.)

비연결형 통신 방법에는 UDP 프로토콜이 사용된다. (보냅니다, 알아서 받던가.)

 

1) TCP

 연결이라는 가상의 독점 통신로를 확보한다.

이는 TCP 헤더의 코드비트 부분으로 확인할 수 있다. 

코드 비트에는 연결의 제어 정보가 기록된다. 연결 확립에는 SYN(연결요청)과 ACK(확인 응답)이 필요하다.

URG ACK PSH RST SYN FIN
0 0 0 0 0 0

TCP로 데이터를 전송할 때 상위 계층에서 받아온 데이터에 붙이는 헤더를 TCP 헤더라고한다. 

TCP 헤더가 붙은 데이터를 세그먼트라고 한다.

코드 비트의 각 정보는 1비트로 표현되며 초기값은 0, 활성화 되면 1이 된다. 

 

 

(연결 확립)

연결 확립을 위해 패킷요청을 세번 교환(SYN , SYN+ACK, ACK) 하는 것을 3-way 핸드셰이크라고 한다.

 

(데이터 전송)

데이터를 주고 받을 때에는 일련번호(이 데이터가 몇 번째 데이터인 지 알려줌)와 확인 응답번호(수신측이 몇 번째 데이터를 수신했는 지 송신측에 알려주는 역할 )를 사용한다. 이 두 가지 번호를 통해 데이터가 손상되거나 유실 됐을 때 재전송을 할 수 있다.(= 제전송 제어)

 

(연결 끊기)

3-way 핸드셰이크 이후 데이터 전송이 완료된 후에도 연결을 끊기 위한 요청을 교환해야한다. (FIN, ACK, FIN, ACK) 

 

 

2)UDP 

비연결형 통신 프로토콜로 TCP 와 달리 복잡한 과정이 없어서 빠르다. 

UDP 는 신뢰성과 정확성을 버렸기 때문에 작은 크기의 UDP 헤더를 가진다. UDP 헤더가 붙은 데이터를 

UDP 데이터 그램이라고 한다. 

 

UDP 는 같은 랜에 있는 네트워크 장비에 데이터를 일괄적으로 보내는 브로드 캐스트가 가능하다.(불특정 다수에게 전송 가능을 의미) 

 

 

2. 포트 번호 

각 응용프로그램이 가지고 있는 번호로 프로그래믈 구분하는 데 사용된다.

TCP 헤더에 출발지 포트번호와 목적지 포트 번호를 넣어서 목표하는 프로그램에 정확히 도달 하도록 한다. 

(웹 브라우져, 메일어플, 파일전송 어플 등등) 

 

16비트를 사용하여 0~65535번 까지 번호를 사용할 수 있다. 

서버측 포트 번호는 직접 정해야 하지만 클라이언트 측은 정하지 않아도 된다.

(클라이언트는 자동으로 포트번호가 할당됨)