관리 메뉴

CASSIE'S BLOG

84강 네트워크 중요 계층과 구조 살펴보기 본문

PROGRAMMING/슈퍼코딩 강의 정리

84강 네트워크 중요 계층과 구조 살펴보기

ITSCASSIE1107 2024. 10. 20. 17:59

 
패킷으로 현대정보들을 교환하고 있다.
 
이 방식을 패킷교환방식이라고 한다. 
 
패킷은 많은 헤더들이 있고 이 계층형 프로토콜에 따라서 덧붙여지고
해석할 때는 때지면서 해석이 된다. 
 

 

 
 
패킷을 보내는 주체를 클라이언트라고하고
패킷을 받는 주체를 서버라고 하겠대
 
구글, 네이버가 서버-클라이언트 구조를 갖고 있다고함.
 

역할이 딱 분리되어있다고함. 
클라이언트는 요청을 보내기만하고
서버는 응답을 하기만하고
서버가 먼저 클라이언트한테 요청하는 거는 거의없다. 
 

이게 그 토렌트 형식임
 
명확히 서버라는 주체가 없다. 다 분산되어있어서. 
 

서버-클라이언트 구조에서 좀 확장된 형태
클라이언트가 요청을 하고 클라이언트는 클라이언트삼에게 요청을 보내고 싶은데
클라이언트3에게 요청을 바로 하는 것이 아니라 중간에 무조건 서버를 거치게 되어있다. 
 
중앙 집중식 구조는 서버 - 클라이언트 역할 분리가 되어있지만 
명확하게 분리된 건 아님 서버-클라이언트 구조와 비교했을 때 



네트워크 인터페이스에서 프로토콜 헤더를 선택할 수 있는데
이 경우에는 광테이블을 따로 있다고함.
일단 랜선을 통해서 인터넷을 사용하고 있다면 이더넷이 뜰거고
와이파이를 사용한다면 와이파이가 뜰거고
 




MAC ADDRESS를 선택하면 IP ADDRESS가 선택되는 거라고 함. 
 
IP이전에 NCP가 있었다고함. 
 

 
 
TCP는 예의가 있는 친구고 UDP는 예의가 없는 친구라고 보면 된다고함.

** 즉, 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용한다.
 
둘다 쓰이고 있다. TCP와 UDP는
 
(추가 공부할 것 링크:)

https://seulow-down.tistory.com/m/270

[네트워크] 전송 계층 프로토콜 (TCP/UDP)

전송 계층의 역할전송 계층은 애플리케이션 계층의 하위 계층으로서 종단 호스트(예: 클라이언트-서버)간의 신뢰성 있는 데이터 전송을 담당한다.전송 계층은 네트워크 상에서 데이터를 전달할

seulow-down.tistory.com

 
TCP가 연결과정을 신경 많이 씀
 

어떤 데이터를 보내기전에 연결 과정이라고 하는 것을 거치게되는데
제어패킷은 안에 의미는 없음 데이터를 안 가지고 있으니까
SYN 싱크: 물어보는 패킷 (서버한테 나 이제 보낼건데 문제 없습니까?)
SYN/ACK: 서버가 문제 없다고 알려주는 패킷
ACK 보내고 나서 유의미한 데이터를 보내기 시작함 
 
웬만하면 순서 보장하고
속도가 너무 빠르면 좀 줄이기도하고
예를 들어 16등분한 이미지에서 한 부분 못 받은 것 같은데 하면
TCP는 다시 보내준다 (신뢰성 보장)
 
tcp는 끝인사까지 한다고함 FIN 
 
CLIENT 에서 끝났다고 알려주는 FIN
SERVER에서도 끝났다고 알려주는 FIN
 

 
많이 사용되는 것만 옮겨놨다고 함
 

 

BOTTOREENT: 토렌트같은 거 쓸 때 사용되는 트로토콜 
RTSP: 스트리밍할 때 사용이 되는 프로토콜이라고 함.
RTP: 게임할 때 종종사용되는 프로토콜
UDP HOLE PUNCHING: 철권처럼 1:1로 하는 게임이 있을 때 쓰는 프로토콜
 
패킷 유실되도 괜찮을 때 UDP

 
각각 색깔 별로 맞는 프로토콜이 있다.
 

SMTP는 이메일에서 많이 사용하는 프로토콜이다.  P2P 네트워크 (이메일서버가 보통 이렇게 구축)
 

이거는 이 기능을 위해서 프로토콜이 태어난 거라서 이걸 써야함
FTP: 파일전송
TELNET, SSH: 원격전송
RTSP, RTP: 스트리밍
 

 
MQTT는 가벼운 메시지 전송 프로토콜로, 제한된 대역폭 환경에서 IoT 기기들이 효율적으로 데이터를 주고받을 수 있도록 설계된 발행-구독 기반 통신 프로토콜이에요.
 

반응형