본문 바로가기
Computer Science/네트워크

사진 전송의 과정으로 보는 Base64, Segment, Packet, Fragment

by Hoseok 2023. 2. 6.
728x90
반응형

서론

 

사진을 데이터로 전송해야 하는 상황이라고 가정해보자.

 

사진을 전송하려고 할 때,

색의 3원소인 RGB로 이미지를 전송한다고 하면,

RGB 각각 8bit씩 총 24bit + 좌표 데이터(x: 8bit, y: 8bit)

⇒ 최소 40bit가 필요하다.

 

만약 200X200 픽셀에 사진을 다 채운다고 하면

40bit * 40000 ⇒ 1.6mbytes의 용량이 나온다.

 

만약 영상을 보낸다고 치면,

1초에 24장의 사진이 필요하므로

1.6 * 24 = 38.4mb의 용량이 필요하다.

 

그렇게 되면 용량이 기하급수적으로 상승하므로,

용량을 줄이기 위한 인코딩(압축)이 필요하다.

 

 


 

내 컴퓨터에서 상대방의 컴퓨터로 사진 전송을 한다고 치자.

 

이러한 Layer가 존재하는데,

 


Application 영역

 

1번 영역 Application은 브라우저의 영역이다.

우선, 사진을 압축하기 위한 인코딩 방법으로,

Base64가 존재한다.

 

Base64

Base64는 Binary 데이터를 문자 코드에 영향을 받지 않는

공통 ASCII 문자로 표현하기 위해 만들어진 인코딩이다.

 

Base64는 2의6승, 6bit씩 담기게 되는데,

처음에 브라우저에서 사진을 전송하기 위해

소켓의 Buffered Writer에 Base64 인코딩을 담는다.

 

Buffered Writer는 Bytestream, 8bit 단위로 전송되므로,

6bit씩 담기고, 2bit는 다 못 채우고 담긴다.

 

소켓의 Stream은 용량 제한이 없는 무한한 선이므로,

2번째 영역으로 전송될 때, Segment라는 데이터 단위로 쪼개져서

전송이 된다.

Segment

전송계층에서 데이터 교환 단위.

Transport Layer(전송계층)에서 교환되는 데이터 단위.

 

segment는 곧, 웹에서의 Payload, 바디 데이터와 같다.

segment에는 몇 번째 segment인지에 대한 정보와

포트번호에 대한 정보가 담긴다.

 


 

TCP/IP 영역

 

2번째 영역은 TCP/IP, 커널과 OS의 영역이다.

 

브라우저에서 Buffered Writer로 보낸 사진 데이터는

이 영역에서 Buffered Reader로 segment를 읽어서

Packet에 담는다.

Packet

패킷은 제어 정보(Header)와 사용자 데이터(Payload)로 이루어진다.

*패킷에는 IP에 대한 정보도 담긴다.

 


 

LAN Card 영역

 

마지막으로 3번째는 LAN Card, 장비의 영역이다.

3번까지 온 데이터는 Fragment라는 데이터 형식에 다시 담긴다.

Fragment

단편화라는 뜻을 가지고 있으며 전송할 패킷이 하위 네트워크

수용 크기보다 크면, 여러 개로 쪼개서 만드는 것을 의미한다.

 

마지막으로 Fragment에는 MAC주소도 담긴다.

MAC주소

네트워크 세그먼트의 데이터 링크 계층에서,

통신을 위한 네트워크 인터페이스에 할당된 고유 식별자.

 

그리고 데이터는 Stream을 타고 전송되서

목적지 주소를 찾아간다.

 

공유기를 나가서 라우터를 이동하며 움직이는데,

트래픽과 빠른 경로를 찾아서 이동한다.

 

이때 라우터를 이동하며 MAC주소는

마치 자동차를 갈아타듯이 라우터가 바뀔 때마다 새로 부여받는다.

 

그렇게 목적지 IP 주소를 찾아서 목적지 공유기에 도착하면,

데이터 전송이 완료된 것이다.

 

이때 포트 포워딩이 되어 있다면, 포트번호를 찾아서

상대방 Application에 전송된다.

Port Forwarding

포트 포워딩 또는 포트 매핑은 컴퓨터 네트워크에서,

패킷이 라우터나 방화벽과 같은 네트워크 게이트웨이를 가로지르는 동안

하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환의 응용.

 


*스위치 종류*

 

L2 스위치

L2 스위치는 패킷의 MAC주소를 읽고 목적지로 보낸다.

L3 스위치

L3 스위치는 출발지와 목적지 IP 기반 패킷의 경로 제어를 하며

L2 스위치 기능과 L3 라우터 기능을 모두 갖추고 있다.

L4 스위치

L4 스위치는 로드밸런싱(서버 부하 분산)을 처리한다.

728x90
반응형

'Computer Science > 네트워크' 카테고리의 다른 글

HTTPS, SSL, TLS, CA 개념 간단 정리  (0) 2023.06.28