통신, 스트림, TCP 등등

Jan 08, 2024
통신, 스트림, TCP 등등
 

스트림 (Stream)

스트림 데이터의 흐름을 추상화 한 것입니다. 데이터를 1byte 단위로 처리, 인터페이스를 읽고 쓸 수 있도록 입출력을 제공합니다.

보조 서트림(Secondary Stream)

보조 스트림은 주로 버퍼링, 데이터 변환, 필터링 등의 작업을 수행합니다. 스트림의 기능적인 확장, 보완을 제공합니다.
 

🎨그림으로 아주 근사히 정리 했으니까 궁금하면 댓글 남기세요🤥

 
Buffer (버퍼) - Input > Output〃, 공급보다 소비가 많을 때 사용됩니다. - Output/Write Buffer : 출력/쓰기 버퍼, Input/Read Buffer : 입력/읽기 버퍼
Secondary Stream (보조 스트림) ※중요합니다. - 크기가 지정돼 있다. - 버퍼에 데이터가 차지 않으면 flush하지 않는다.
flush - 버퍼가 데이터를 목적지로 전송하고 비우는 작업

TCP(Transmission Control Protocol) 통신

☞ 연결 지향성 프로토콩
☞ 높은 신뢰성. 오류를 감지하고 복구. ⇒ 파일 전송, 웹페이지, 메일 등 신뢰성이 높은 프로그램
☞ 신뢰성 보장을 위해 패킷의 송수신을 확인하고 필요에 따라 재전송. → 오버헤드 발생

UDP(User Datagram Protocol) 통신

☞ 비연결성 프로토콩
☞ 신뢰성을 보장하지 않음. 데이터 손실 같은 오류를 감지하거나 복구하지 않는다. ⇒ 통화, 영상 스트리밍, 게임 등 처리속도가 중요한 프로그램
☞ TCP와에 비해 오버헤드가 적고 처리속도가 빠름
 
 

segment (세그먼트)

세그먼트는 전송 계층에서 사용되는 단위입니다. 큰 데이터를 작고 구체적인 단위로 분활하는 과정입니다. 데이터를 잘게 자른 것. TCP 프로토콜 기반으로 전송됩디다. 세그먼트는 송/수신자간의 데이터 전송을 위해 포트 번호를 가지고 있으며, 패킷을 논리적 단위로 분할 전송합니다.

구조

헤더 (Header) - 세그먼트에 대한 정보를 가지고 있습니다.
데이터 (Data/Body) - 실제 전송되는 데이타
 
보낼 데이터 캡슐화 받은 패킷들을 확인. 수신자 IP 영역(버퍼)을 만들고 전송 → 비우기
 

Packet (패킷)

네트위크를 통해 전송되는 단위. 패킷은 전달을 위해 필요한 제어 정보를 포함한다. 패킷은 개별적으로 전송되고, 수신 측에서 헤더 정보를 기반으로 패킷을 재조립하여 데이터를 복원한다. 신뢰성과 효율성있는 데이터 전송을 위해 필수!

구조

헤더 (Header) - 헤더는 패킷의 제어 정보를 담고 있습니다. 송수신 IP 주소, 포트 번호, 프로토콜 정보, 패킷의 길이 등
페이로드(Payload) - 페이로드는 전송되는 데이터를 포함하는 부분입니다. 세그먼트의 바디랑 같습니다.
 

ACK (Acknowledgement) : 잘 도착했다

수신측이 송신측에게 데이터를 정상적으로 받았음을 알리는 신호입니다.
 
 
🤔 : 하나야 서킷 스위칭대신 패킷 스위칭을 하는 이유가 뭐야❔
🥔 : 경제, 확장, 신뢰도 떨어지고, 리소스도 낭비해서 그래 그래도 실시간 통신(통화, 게임)관련해선 서킷 스위칭이 필요해 :)
 
 
💡Host는 인터넷이 되는 모든 장치를 일컫는 용어입니다. 전세계 42억 9천만개 보다 많진 않겠죠??(아직까진) 그럼 32bit (4byte)로 IP주소를 식별할 수 있습니다! → IPv4
💡
IP (Internat Protocol)
컴퓨터들이 네트워크에서 서로 통신하기 위해 사용하는 고유 주소입니다.
IPv4 (Internat Protocol version 4) 현재까지 널리 사용되는 IP버전입니다. 32bit(4byte)로 이루어진 주소체계를 사용하구요, 보통 4개의 8비트로 표현합니다. 0부터 255까지의 값을 가질 수 있어요 *옥텟(octet)이라고 합니다. ex) 192.168.0.1 / 255.255.255.255 / 0.0.0.1
 
 
 
Share article

MiracleCoding