네트워크
공통 질문
OSI 7계층의 역할과 각 계층의 프로토콜은?
TCP와 UDP의 차이점은?
HTTP와 HTTPS의 차이점은?
DNS(Domain Name System)의 동작 원리는?
네트워크 주소 변환(NAT)의 개념과 사용 이유는?
SSL/TLS의 동작 방식은?
로드 밸런싱(Load Balancing)이란 무엇이며, 어떻게 동작하는가?
IP 주소와 서브넷 마스크(Subnet Mask)의 관계는?

컴퓨터 네트워크란?
컴퓨터끼리 데이터를 주고 받는 시스템
LAN
Local Area Network
기업의 사내 네트워크 == 인트라넷
WAN
Wide Area Network
LAN과 LAN을 연결함
LAN |
WAN |
|
역할 | 거점 내 기기끼리 서로 연결 | 거점인 LAN 끼리 서로 연결 |
구축 및 관리 | 직접 구축, 직접 관리 | 통신사업자가 구축, 관리 |
초기 비용 | 설계, 구축 인건비, 기기 비용 | 서비스 계약 요금 |
관리 비용 | 관리자 인건비 | 통신 요금 |
네트워크 아키텍쳐
프로토콜 + 프로토콜 + ... +프로토콜 = 네트워크 아키텍쳐
네트워크의 공통 언어
TCP/IP
현재는 대부분 TCP/IP를 사용한다.
pc, smart phone 다 이 언어를 사용한다.
TCP/IP 에서는 네트워크를 통해 application의 data를 주고 받기 위해, 역할별로 4계층을 사용한다.
OSI 7계층의 역할과 각 계층의 프로토콜은?
TCP/IP 계층
애플: 애플리케이션 layer
010101 -> id, password로 사용가능하게 데이터가 보임
application에서 다룰 데이터 형식과 절차를 결정
트: 트랜스포트 layer
도착한 ip에 데이터를 전달할때 안전하게 전달? 불안전하게 전달?
데이터가 클 경우 분할해서 전달
application에 데이터를 전달
이터: 인터넷 layer
end to end 통신
출발 ip, 도착 ip를 비교하여 목적지에 도착
네인: 네트워크 인터페이스 layer
네트워크에서 데이터를 전송
010101 데이터를 전기신호로 변경, 인터페이스에서 인터페이스로 전달
이더넷, 와이파이 사용
데이터 송수신 규칙
프로토콜에서는 각각의 기능을 실현하기 위한 헤더(제어정보)가 필요합니다.
FCS(Frame Check Sequence)가 추가되면 네트워크로 보낼 전체 데이터가 완성됩니다.
이더넷
네트워크 인터페이스 layer 프로토콜
같은 네트워크 내 이더넷 인터페이스 -> 다른 이너넷 인터페이스까지 데이터를 전달한다
이더넷은 선으로 연결된다
물리적 연결이다
UTP 테이블
UTP 테이블이 대중적으로 사용된다.
흔히 말하는 LAN 케이블 == UTP 테이블
RJ-45
RJ-45도 많이 쓰인다
이더넷 인터페이스
이더넷 인터페이스를 특정하려면 mac 주소가 필요하다
mac 주소
mac 주소는 이터페이스를 특정하기 위한 48bit 주소
표기는 16bit
이더넷 인터페이스에 미리 mac주소가 할당되어 있어서, 변경할 수 없다.
oui는 이더넷 인터페이스를 제조하는 벤더 식별 코드이다
네트워크를 구성하는 기기
라우터
mac 주소 확인후 라우팅한다
레이어2 스위치
네트워크를 구성한다
이더넷으로 데이터를 전송한다. 데이터 변경 X
스위치에는 mac 주소 테이블이 있다
레이어3 스위치
네트워크를 연결한다
IP == Internet Protocol
end to end 통신
IP 주소로 통신 상대방을 특정한다
출발지 IP, 도착지 IP가 중요하다
라우터가 전송 -> 최종 라우터에 도달 -> 최종 IP 도착
라우터가 IP 패킷을 전송 == 라우팅
IP 헤더의 포맷
IP 주소와 서브넷 마스크(Subnet Mask)의 관계는?
IP 주소 표기
네트워크 부
네트워크를 식별
호스트 부
네트워크 내의 host를 식별
서브넷 마스크
32bit IP 주소의 어디까지가 네트워크 부인지 명시한 것
데이터 전송 방법
유니캐스트
단 한곳으로 데이터를 보냄
브로드캐스트
네트워크에 속한 모든 host에게 데이터를 보냄
멀티캐스트
특정 그룹에 속하는 host에게 데이터를 보냄
단 네트워크는 달라질수 있다. ex) 네트워크1(host), 네트워크2(host)
ICMP
데이터가 목적지에 잘 도착했을까?
IP는 데이터를 보내려고 노력하지만, 안되도 어쩔 수 없다.
그래서 별도로 end to end 통신이 정상적으로 이뤄졌는지 확인 하는 프로토콜이 ICMP(Internet Control Message Protocol)
ex) ping command
TCP와 UDP의 차이점은?
TCP
신뢰성 있는 데이터 전송 프로토콜
크기가 큰 데이터를 분할한다.
3way handshake
1. TCP 커넥션 연결
2. 애플리케이션 간 데이터 송수신
3. TCP 커넥션 연결 닫기
UDP
애플리케이션으로 데이터를 보내기만 하는 프로토콜
크기가 큰 데이터를 분할하는 기능 없음
ex) 전화
HTTP
웹브라우저가 웹서버에 데이터를 request, response 프로토콜
프록시 서버
중간에 서버
요청한 사람이 누구인지 체크 가능하다
DNS(Domain Name System)의 동작 원리는?
웹사이트를 볼때의 동작
웹브라우저에 url 입력 엔터
url에 포함된 웹서버의 호스트명을 DNS서버에 질의함
웹서버의 ip주소를 해석한다
DNS서버에 질의할때는
이더넷의 mac 주소를 구하기 위해 ARP도 실행한다
웹브라우저와 웹서간에 TCP 커넥션 확립이 되면
http request, http response 를 주고받는다
tcp에서 분할된 파일을 조립하여 웹브라우저에 내용을 표시한다
DNS 서버
SSL/TLS의 동작 방식은?
개인정보를 전송해도 괜찮을까?
가짜웹사이트,.. 보낸 정보가 도청될 수도 있다
SSL
디지털 인증서
통신 상대방이 진짜라는 것을 확인
데이터를 보낼때 암호화해서 도청을 방지한다
공개키, 개인키를 사용한다.
공개키로 데이터를 암호화
개인키로 데이터를 복호화
HTTPS
SSL로 공개키로 데이터를 암호한 데이터
SSL로 공개키로 데이터를 암호한 데이터를 요청/응답 된 프로토콜이 https이다
브라우저에서 https:// 로 확인 가능하다
'학습 기록 (Learning Logs) > CS Study' 카테고리의 다른 글
C, C++, C# 차이 (0) | 2024.12.07 |
---|---|
운영체제 (0) | 2024.12.02 |
8월 4주차 GC (0) | 2024.08.19 |
8월 4주차 JDK, JRE, JVM (0) | 2024.08.19 |
8월 4주차 jar, war (0) | 2024.08.19 |