반응형

지난번에 냅다 소개 겸 예고글을 올렸던 혼공학습단 13기 활동이 시작되었습니다

2024.12.20 - [공부/IT] - 한빛미디어와 함께 하는 혼공학습단 소개 및 13기 참여 예고

 

한빛미디어와 함께 하는 혼공학습단 소개 및 13기 참여 예고

올 한 해 공부를 너무 하지 않은 죄로...필기를 N번이나 봤는데 전부 필탈 했다죠 실화냐물론 점수차가 동점차(^^)부터 최대 3점까지긴 했지만어찌 되었든 처참한 결과에 충격을 금치 못했고...반

lv27.tistory.com

한빛미디어의 혼자 공부하는 시리즈 중에서
자기가 공부하고 싶은 걸 1권 선택해서
매주 커리큘럼 따라 공부하고 숙제 및 정리 글을 올리면 되는데요.

내가 13기에 신청한 건 "혼자 공부하는 네트워크"

출처 : 한빛미디어 공식 사이트

혼공학습단의 족장(?)님이 내주시는 숙제 커리큘럼은 아래와 같아요.

출처 : 혼공학습단 홈페이지

본격적으로 숙제를 하기 전에!
이번 주가 혼공단의 첫 번째 주니까
앞으로 6주간 공부할 책에 대해서도 잠시 살펴볼게요

책을 펼치면 가장 먼저 "학습 로드맵"이 나와요.
목차보다 먼저 나와서, 이 책을 통해 무엇을 배우게 될지 대략적으로 파악할 수 있어요.
게다가 책을 100% 활용하기 위한 여러 팁도 있는데요.
1. 핵심 개념과 용어를 따로 정리한 PDF 파일인 혼공 용어 노트
2. 혼자 이해 하기가 어렵다면 들을 수 있는 무료 강의
3. 심화 학습에 필요한 파일들을 보고 저자에게 직접 질문도 할 수 있는 깃헙 
마지막으로 4. 의지박약자를 강제로 공부하게 하는 혼공학습단

출처 : 한빛 미디어 공식 사이트 > 미리보기 기능

목차는 대제목만 살펴볼게요.
우리 혼공단 커리큘럼과 순서가 같아요.
매주 해당하는 내용에만 하이라이트를 쳐볼게요

<목차>
Chapter 1. 컴퓨터 네트워크 시작하기
Chapter 2. 물리 계층과 데이터 링크 계층
Chapter 3. 네트워크 계층
Chapter 4. 전송 계층
Chapter 5. 응용 계층
Chapter 6. 실습으로 복습하는 네트워크
Chapter 7. 네트워크 심화

그럼 1주차 공부를 시작해 볼까요

# 컴퓨터 네트워크란
   여러 장치가 연결되어 정보를 주고받을 수 있는 통신망을 의미
   많은 프로그램이 네트워크를 통해 다른 장치와 상호작용하며 실행됨
   >> 프로그램을 개발하거나 유지보수 할 때 네트워크 배경지식을 활용해야 하는 경우가 많기에 공부가 필요

# 네트워크의 기본 구조
   모든 네트워크는 노드, 노드를 연결하는 간선, 노드 간 주고받는 메시지로 구성됨
   노드 : 정보를 주고받을 수 있는 장치. 호스트, 서버, 네트워크 장비 등이 존재
   간선 : 정보를 주고 받을 수 있는 유무선의 통신 매체
   메시지 : 통신 매체로 연결된 노드가 주고받는 정보. 웹 페이지, 파일, 메일 등 다양

출처 : 한빛출판네트워크 홈페이지 > 채널.H

# 범위에 따른 네트워크 분류
   LAN(Local Area Network) : 가까운 지역을 연결한 근거리 통신망. 가정, 학교, 기업과 같이 한정된 공간의 네트워크 
   WAN(Wide Area Network) : 먼 지역을 연결하는 광역 통신망. 멀리 떨어진 LAN을 연결할 수 있는 네트워크로, ISP(Internet Service Provider)라는 인터넷 서비스 업체가 구축하고 관리. 국내에 대표적인 ISP는 3대 통신사가 있음.

더보기

더 세밀하게 나누면 LAN과 WAN 사이에 2개의 개념이 더 존재. 순서를 따지자면,
(넓음) WAN >> MAN >> CAN >> LAN  (좁음)
- MAN은 도시나 대도시 단위로 연결되는 규모의 네트워크를 의미
- CAN은 학교/회사의 여러 건물 단위로 연결되는 규모의 네트워크를 의미

# 메시지 교환 방식에 따른 네트워크 분류
   회선 교환 방식 : 메시지 전송로인 회선(Circuit)을 먼저 설정하고 이를 통해 메시지를 주고받는 방식. 요즘은 안 쓰이지만 전통적인 전화망과 같은 형태. 주어진 시간 동안 전송되는 정보의 양이 비교적 일정하다는 장점이 있으나, 반대로 회선의 이용 효율이 낮아질 수 있다는 단점도 존재. 하단의 왼쪽 그림 내 붉은 선처럼 회선을 먼저 설정해야 이 경로를 통해 메시지가 오갈 수 있음

출처 : 혼공학습단 홈페이지 > 읽을거리

   패킷 교환 방식 : 메시지를 패킷(Packet)이라는 작은 단위로 쪼개어 전송. 회선 교환 방식에 비해 네트워크 이용 효율이 상대적으로 높음. 상단의 오른쪽 그림처럼 패킷들이 회선을 타고 필요한 곳으로 이동하게 됨.
   패킷은 헤더, 페이로드, 트레일러로 구성. 패킷이 택배와 비슷한 개념이라,
   헤더(Header)는 어디로 가야 할지 적힌 택배 송장 같은 개념이고,
   페이로드(Payload)는 전송하고자 하는 데이터가 담겨 있는 택배 안의 내용물,
   트레일러(Trailer)는 부가적인 정보를 표시한 것.

출처 : 혼공학습단 홈페이지 > 읽을거리

# 주소/송수신지 유형에 따른 전송방식
   유니캐스트(Unicast) : 하나의 수신지에 메시지를 전송하는 방식. 1:1 전송 방식 
   브로드캐스트(Broadcast) : 자신을 제외한 네트워크상의 모든 호스트에게 전송하는 방식 
   멀티캐스트(Multicast) : 네트워크 내의 동일 그룹에 속한 호스트에게만 전송하는 방식
   애니캐스트(Anycast) : 네트워크 내 동일 그룹에 속한 호스트 중 가장 가까운 호스트에게만 전송하는 방식

# 프로토콜(Protocol)이란
   노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법. 서로 다른 장치들이 정보를 제대로 주고받으려면 필요.
   IP, HTTP, TCP, ARP 등 프로토콜별로 목적과 특징이 모두 다름

# 네트워크 참조 모델이란
   네트워크를 통해 정보를 주고받을 때 정형화된 여러 단계를 거치는데, 이를 계층으로 나눈 구조를 의미. 계층을 나누는 이유는,
   1) 네트워크 구성과 설계가 용이해지기 때문 : 각 계층의 역할이 정해져 있어 그에 맞게 프로토콜과 네트워크 장비를 구성 가능
   2) 네트워크 문제 진단과 해결에 용이 : 문제가 발생 시 계층별로 진단하면서 문제 발생 지점을 쉽게 추측하고 해결 가능

   네트워크 참조 모델은 크게 OSI 모델과 TCP/IP 모델로 나눠짐

여기부터는 심화 공부를 위해 다른 책과 블로그도 참고하며 정리했는데 비슷한/중복되는 개념도 그냥 적었습니다.
사담인데 모 기업에서 계층별로 프로토콜 구분하랬는데 공부 안 해서 틀렸거든요^ㅁ^
아무래도 대학 졸업장 반납해야 할 수준... 그래서 좀 힘줘서 자세히 공부해봤음다
하지만 프로토콜별로는 나중에 따로 정리할게요... 암튼 공부 킵고잉

# OSI 7계층 (낮은 >> 높은 순으로)

(1) 물리 계층 Physical Layer
- OSI 모델 최하단에 있는 계층
- 0과 1로 표현되는 비트 신호를 주고받음
- 주로 전기/기계/기능적 특성을 이용해 통신 케이블로 데이터를 전송하는 물리적인 장비 전송에 필요한,
   두 장치 간의 실제 접속과 전달 등 기계/전기/기능/절차적 특성에 대한 규칙을 정의
- 전송 단위(프로토콜 데이터 단위, PDU)는 비트 Bit
- 장비는 통신 케이블, 리피터, 허브(반이중) 등
- 관련 프로토콜로는 RS-232C, X.21 등

(2) 데이터 링크 계층 Data Link Layer >> 흐름/오류/순서 제어
- 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 계층
- 물리 계층을 통해 주고받는 정보에 오류가 없는지 확인
- MAC 주소 체계를 통해 네트워크 내 송수신지를 특정
- 전송 과정에서 발생할 수 있는 충돌 문제를 해결하는 계층
- 물리적으로 연결된 인접한 개방 시스템들 간 신뢰성 있고 효율적인 정보 전송을 위해 시스템 간 연결 설정과 유지 및 종료를 담당
- 물리 계층을 통해 송수신되는 정보의 오류의 검출과 회복을 위한 오류제어와,
   송수신 측 속도 차이를 해결하기 위해 흐름을 관리는 흐름 제어
,
   프레임의 순서적 전송을 위한 순서 제어(재전송)
- 전송 단위인 프레임(frame)에 물리적 주소(MAC 주소)를 부여
- 장비는 랜카드, 브리지, 스위치(전이중), 이더넷 등
- 관련 프로토콜로는 HDLC, LAPB, LLC, MAC, LAPD, PPP 등

(3) 네트워크 계층 Network Layer
- 메시지를 다른 네트워크에 속한 수신지까지 전달하는 계층
- 네트워크 간 통신을 통해 인터넷을 가능하게 하는 계층
- IP 주소를 통해 통신하고자 하는 수신지 호스트와 네트워크를 식별하고, 원하는 수신지에 도달하기 위한 최적의 경로 결정(라우팅)
- 개방 시스템들 간 네트워크 연결을 설정/유지/해제하는 관리 기능과 데이터의 교환/중계 기능, 경로 제어, 패킷 교환, 트래픽 제어 등의 기능을 수행
- 라우터를 통해 경로를 선택하고 주소를 정하고(IP), 경로에 따라 패킷을 전달
= 발신지/목적지의 논리 주소가 추가된 패킷을 최종 목적지까지 전달 (IP 헤더 붙음)
- 전송 단위는 패킷
- 장비는 라우터
- 관련 프로토콜로는 IP, ICMP, IGMP, ARP, RARP, X.25 등

더보기

(참고) IP의 특징
- 신뢰성(에러 제어) / 흐름 제어 기능 없음
- 비연결성 / 비신뢰성
- 인터넷 주소 지정과 라우팅
- 패킷 단편화와 재조립
- 데이터그램 기반, 패킷 전송

(4) 전송 계층 Transport Layer
- 신뢰성 있고 안정성 있는 전송을 해야 할 때 필요한 계층
- OSI 7계층 중 하위 3계층과 상위 3계층의 인터페이스 담당
- 패킷의 흐름을 제어하거나 전송 오류를 점검해 신뢰성 있고 안정적인 전송이 이루어지도록 함
   (패킷이 정상적으로 보내졌는지, 중간에 유실은 없었는지, 순서가 뒤바뀌지는 않았는지 확인)
- 논리적 안정과 균일한 데이터 전송 서비스를 제공해 종단 시스템 간(end to end) 투명한 데이터 전송 지원
- 종단 시스템 간(단말기 사이에) 전송 연결 설정, 데이터 전송, 연결 해제 기능
- 주소 설정, 다중화(분할 및 재조립), 오류 제어, 흐름 제어
- 두 지점 간 신뢰성 있는 데이터 송수신을 지원하는 역할, 신호를 분산하고 다시 합치는 과정을 통해 에러와 경로를 제어
- 전송 단위는 세그먼트
- 장비는 게이트웨이
- 관련 프로토콜로는 TCP, UDP
   TCP는 신뢰성, 연결지향적인 프로토콜. 패킷의 전송. 오류/혼잡/흐름 제어
   UDP는 비신뢰성, 비연결성, 실시간성을 가진 프로토콜

(5) 세션 계층 Session Layer
- 통신을 주고받는 호스트의 응용 프로그램 간 연결 상태인 "세션"을 관리하는 계층
- 송수신 측 간의 관련성 유지, 대화제어 담당
- 대화(회화) 구성 및 동기 제어, 데이터 교환 관리 기능
- 송수신측간의 데이터 전송, 연결 해제, 동기 처리 등의 대화를 관리하기 위해 토큰 사용
- 송수신측간의 대화 동기를 위해 전송하는 정보의 일정한 부분에 체크점을 두어 정보의 수신 상태를 체크함 (체크점=동기점)
- 동기점은 오류가 있는 데이터 회복을 위해 사용하는 것
   소동기점 : 하나의 대화 내, 수신 측으로부터 확인 신호 ACK 안 받음
   대동기점 : 전송하는 데이터의 처음/끝, 확인 신호 받음
- API. Socket. TCP/IP 세션 체결. 포트 port 번호 기반 통신 세션

(6) 표현 계층 Presentation Layer
- 서로 다른 표현 형태를 갖는 시스템 간 상호 접속을 위해 필요한 계층 like 번역가
- 코드 변환(사람 언어인 문자를 컴퓨터가 이해 가능한 코드로 변환)
- 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식(포맷) 변환, 문맥 관리 기능

(7) 응용 계층 Application Layer
- OSI 참조 모델 최상단에 있는 계층
- 사용자&사용자가 이용하는 응용 프로그램과 가장 밀접한 계층
- 사용자(응용 프로그램)이 OSI 환경에 접근할 수 있도록 서비스 제공
- HTTP(80), FTP(21), SMTP(25), SNMP, POP3, IMAP, Telnet(23), DNS(53) 
* 세션부터 응용까지 전송 단위는 메시지

정리하자면 아래 그림의 OSI 7계층과 같답니다. 네트워크를 이론적으로 기술하고 이해할 때 사용하는 "이상적 설계" 같은 거래요.
그럼 계속해서 오른쪽의 TCP/IP 모델도 볼까요? 구현에 중점을 두어 실제 사용하기 위한 "실용적 구현" 같은 거라고 하네요.
이런 차이점이 있다는 건 처음 알았다.

출처 : https://www.nossi.dev/06936fc0-eb03-4a53-8e4f-2e5dc71508dd

# TCP/IP 4 계층 (낮은 >> 높은 순으로)

(1) 네트워크 액세스/인터페이스 계층 Network Access/Interface Layer
- OSI 모델에서의 물리와 데이터 링크 계층과 유사   (간혹 데이터 링크 only로 다르게 보는 시선도 있긴 함)
- 실제 데이터(프레임)을 송수신하는 역할
- 에러 검출, 패킷의 프레임화
- 네트워크 접근 방법, 프레임 포맷, 매체에 독립적으로 동작하도록 설계
- 물리적인 주소로 MAC 사용
- LAN, 패킷망 등에 사용됨
- 이더넷, IEEE 802, HDLC, X.25, RS-232C, ARQ 등

(2) 인터넷 계층 Internet Layer
- OSI 모델에서의 네트워크 계층과 유사
- 데이터 전송을 위한 주소 지정(어드레싱), 경로 설정(라우팅), 패키징 기능 제공
- 네트워크 상 최종 목적지까지 정확하게 연결되도록 연결성 제공
- IP, ICMP, IGMP, ARP, RARP

(3) 전송 계층 Transport Layer
- OSI 모델에서의 전송 계층과 유사
- IP와 Port를 이용하여 프로세스와 통신
- 호스트들 간의 신뢰성 있는 통신 제공
- 통신 노드 간 연결 제어
- TCP, UDP, RTCP

(4) 응용 계층 Application Layer
- OSI 모델에서의 세션, 표현, 응용 계층을 합친 것과 유사
- 응용 프로그램 간 데이터 송수신 제공, 프로토콜 정의
- 다른 계층 서비스에 접근할 수 있게 하는 애플리케이션 제공
- HTTP(80), HTTPS, FTP(21), SMTP(25), SNMP, POP3, IMAP, Telnet(23), DNS(53)

책에서는 각 계층을 추후에 자세히 학습할 예정이라고 했다.
나중에 해당 챕터에서 공부하면서 비교하고 조금 더 압축적으로 요약해보고자 한다.

#캡슐화와 역캡슐화
   패킷은 송신 과정에서 캡슐화가, 수신 과정에서 역캡슐화가 이루어짐. 네트워크 참조 모델도 마찬가지
   정보 전송 시 각 계층에서는 상위 계층으로부터 받은 패킷을 페이로드 삼아, 프로토콜에 걸맞은 헤더(or 트레일러)를 덧붙인 후 하위 계층으로 전달하는데 이 과정이 캡슐화(encapsilation)
   역캡슐화는 반대로 메시지를 수신할 때 각 계층에서 헤더를 확인한 뒤 제거하고 상위 계층으로 올려 보내는 과정을 의미

출처 : 한빛출판네트워크 홈페이지 > 채널.H

# 프로토콜 데이터 단위 PDU(Protocol Data Unit)
   각 계층에서 송수신되는 메시지의 단위
   상위 계층에서 전달받은 데이터에 현재 계층의 프로토콜 헤더(및 트레일러)를 추가하면 현재 계층의 PDU

OSI 계층 PDU
응용 데이터 혹은 메시지
표현
세션
전송 세그먼트(TCP), 데이터그램(UDP)
네트워크 패킷 (간혹 IP 데이터그램)
데이터 링크 프레임
물리 비트

 

이렇게 해서 "혼자 공부하는 네트워크"의 챕터 1 컴퓨터 네트워크 시작하기 파트를 공부해 봤는데요.
그냥 가기는 아쉬우니 족장님의 추가 숙제📚를 풀어보겠습니다.

# (p35) 확인문제 2번 "네트워크에 대한 설명으로 옳지 않은 것을 골라 보세요"
   네트워크에 대한 이해는 프로그램을 만드는 과정에 도움을 주기에 1번 선지가 오답
   컴퓨터 네트워크와 인터넷에 대해 설명하면서 프로그램 개발/유지보수 같은 상황에서 네트워크 배경지식을 활용하는 경우가 많다고 언급함

# (p73) 확인문제 2번 "네트워크 참조 모델에 대한 설명으로 옳지 않은 것을 골라 보세요"
   TCP/IP 모델은 네트워크 액세스, 인터넷, 전송, 응용 계층으로 구성된 4계층 모델이라 2번 선지가 오답

그럼 혼공단 13기 혼공네트 1주차 공부 진짜 끝!

 

반응형

+ Recent posts