[네트워크 기본] 6

Greenddoovie·2022년 1월 14일
0

Network

목록 보기
6/8

전송 계층

역할: 목적지에 신뢰할 수 있는 데이터를 전달하는 계층

어떻게 신뢰할 수 있는 데이터를 전달할까?

전송 계층에 쓰이는 Protocol의 Header에 CheckSum bit 영역이 존재하는데 데이터의 손상 유무를 판단한다.

목적지에 전달은 어떻게 하는가?

전송 계층의 Header에는 port num을 저장할 수 있는 공간이 있다. 이 port num을 이용하여 목적지(애플리케이션)를 명시한다.

연결형 통신과 비연결형 통신

전송 계층에 쓰이는 protocol은 크게 2가지로 분류된다.
1) 신뢰성과 정확성이 바탕이 되는 프로토콜
2) 효율성이 바탕이 되는 프로토콜

신뢰성과 정확성이 바탕이 되는 프로토콜을 연결형 통신이라 하고, 효율성이 바탕이 되는 프로토콜을 비연결형 통신이라 한다.

연결형 통신은 통신 과정에서 상대방과 확인해가면서 통신하는 방식이기 때문에 신뢰성과 정확성 성격을 가지고 비연결형 통신은 상대방을 확인하지 않고 보내기 때문에 신뢰성과 정확성이 떨어지지만 매우 빠르게 보낼 수 있어 효율적이다.

1) TCP
2) UDP
불린다

TCP 구조

신뢰성과 정확성을 우선으로 하는 연결형 통신 프로토콜

TCP에 쓰이는 데이터

TCP 프로토콜도 캡슐화, 역캡슐화 과정이 존재한다. 캡슐화를 위해 데이터에 TCP 헤더를 붙히고 이렇게 생성된 데이터를 세그먼트라 부른다.

연결

TCP는 연결형 통신 프로그램이기 때문에, 연결이라는 가상의 독점 통신로를 확보한다. 연결이 확립된 후에 데이터를 전송할 수 있다.

또한 TCP 헤더에 연결에 관한 코드 비트 부분이 존재한다. 이 중에 SYN, ACK을 이용해서 연결을 시도하고 SYN은 연결 요청, ACK은 확인응답을 의미한다.

3-way 핸드셰이크

신뢰할 수 있는 연결을 하려면 데이터를 하기 전에 패킷을 교환하는데 총 세 번을 확인한다.

1) SYN: 연결 확립 요청
2) SYN + ACK: 연결 확립 응답 + 연결 확립 요청
3) ACK: 연결 확립 응답

연결 종료

TCP는 연결을 끊기 위한 요청 과정도 존재한다.
연결을 끊을 때는 앞서 사용한 SYN 대신에 FIN 비트를 사용하고, ACK 사용한다.

1) FIN: 연결 종료 요청
2) ACK: 연결 종료 응답
3) FIN: 연결 종료 요청
4) ACK: 연결 종료 응답

일련 번호와 확인 응답 번호의 구조

TCP 과정 중에 실제 데이터를 보내거나 받을 때는 TCP 헤더의 일련번호와 확인응답번호를 사용한다.

일련번호

  • 송신 측에서 수신 측에 이 데이터가 몇 번째 데이터인지 알려주는 역할
  • 수신자는 몇 번째 데이터를 받았는지 알 수 있다

확인응답번호

  • 수신 측이 몇 번째 데이터를 수신했는지 송신측에 알려주는 역할

이러한 통신 과정 중에 데이터가 손상되거나 유실된 경우에 데이터를 재전송하게 되어 있다.
이것을 재전송 제어라고 한다.

윈도우 크기

TCP에는 수신된 세그먼트를 보관하는 Buffer가 존재한다. 이 버퍼에 세그먼트가 가득차게 되면 Overflow가 발생하게 되고 데이터 통신이 원활하게 이뤄지지 않는다.

따라서 오버플로가 발생하지 않도록 버퍼의 한계크기를 종단점끼리 알고 있어야하는데, TCP 헤더의 window size 공간을 이용하여 알려준다

윈도우 크기: 얼마나 많은 용량의 데이터를 저장해 둘 수 있는지 나타낸 양으로 연속해서 송수신 할 수 있는 데이터 크기를 의미한다

윈도우 크기는 3-way 핸드 셰이크 과정 중에 교환한다.

포트번호

전송 계층의 다른 역할인 목적지를 알려주기 위한 용도로 포트번호를 사용한다.
포트 번호 또한 TCP 헤더에 source port num과 dest port num을 명시한다

UDP 구조

비연결형 통신이기 때문에 데이터를 전송할 때 TCP 처럼 시간이 걸리는 확인 작업을 일일이 하지 않는다.

UDP의 장점은 데이터를 효율적으로 빠르게 보내는 것이기 때문에
1) 스트리밍방식으로 전송하는 동영상 서비스와 같은 곳에 사용된다.
2) 랜에 있는 컴퓨터나 네트워크 장비에 데이터를 일괄로 보내야하는 곳에 사용되고, broadcast라 부른다.

UDP 헤더

UDP도 캡슐화, 역캡슐화 과정이 존재하고 이 과정에 헤더가 존재한다.
UDP Header가 붙은 데이터를 UDP 데이터그램이라고 부른다

profile
기초를 이해하면 세상이 다르게 보인다

0개의 댓글