20. TCP 헤더를 설명하세요.
부위별 해석
- 발신지 포트 주소
- 보내는 곳의 포트 번호
- 목적지 포트 주소
- 받는 곳의 포트 번호
- Sequence number
- 현재 패킷의 바이트 번호
- 전송 데이터들을 서로 뒤섞이지 않고 보내기 위해 순서를 만드는 것임
- 예시
- 앞선 패킷이 1000~1200번 바이트 사용 시, 현재 패킷의 시퀀스 넘버는 1201
- Acknowledgement number(확인 응답 번호)
- 수신자가 원하는 다음 바이트 번호
- 수신자가 ACK 신호로 Acknowledgement number를 같이 보냄
- 송신자는 해당 Acknowledgement number를 TCP 헤더에 담아서 수신자에게 보냄
- HLEN (or) Data offset
- TCP 헤더의 크기를 나타냄
- 단위 : 1word(= 4byte)
- 예시
- TCP 헤더의 크기 = 10byte
- HLEN = 2 word ( = 10/4)
- Reserved(예약)
- TCP 헤더의 여유 공간
- TCP 프로토콜의 기능 확장으로 인해, 새로운 용량이 필요할 시, 해당 공간을 사용 가능
- 구체적인 예시는 없음
- flag bits (URG, ACK, PSH, RST, SYN, FIN, NS, CWR, ECE)
- 세그먼트의 상태 설정
- Window Size
- 수신자가 사용할 수 있는 버퍼의 남은 공간
- = 송신자가 전송할 수 있는 데이터의 최대 크기
- Checksum
- 해당 tcp 세그먼트의 오류 검출
- urgent pointer
- 긴급 데이터가 끝나는 위치를 표시
- (패킷의 시작 부분 부터 긴급 데이터가 끝나는 부분까지 전부 긴급 데이터가 됨)
- options and padding
- options
- 해당 tcp 헤더의 추가적인 설명
- padding
- 해당 tcp 헤더가 기준 크기(표준으로 정해진 크기)보다 작을 시, 크기를 맞추기 위해 사용되는 빈 공간
- options
※ 긴급데이터
- 송신측에서 먼저 처리되기를 희망하는 데이터
21. DNS 설명
- DNS
- 해당 도메인 주소를 IP 주소로 변환하는 것
- 컴퓨터는 도메인 주소를 해석할 수 없다. 따라서, 도메인 주소에 따른 IP 주소를 만들어내야한다.
- 예시
- www.google.co.kr
- 도메인 : www, google, co, kr
- kr을 관리하는 DNS 서버 방문 → co.kr을 관리하는 DNS 서버 IP 주소를 받을 수 있음
- co.kr을 관리하는 DNS 서버 방문 → google.co.kr을 관리하는 DNS 서버 IP 주소 받기
- google.co.kr을 관리하는 DNS 서버에서 www.google.co.kr의 최종 IP 주소 획득
- www.google.co.kr의 IP 주소로 이동
- www.google.co.kr
- DNS 서버 종류
- 1단계 도메인 - 최상위 도메인(TLD - Top Level Domain)
- 사용자가 입력한 도메인의 최상위 도메인 서버
- 2~n단계 도메인
- 맨 위, 맨 아래 도메인이 아닌 중간에 위치한 도메인
- 서브 도메인
- 맨 하위 도메인
- 해당 도메인에서 최종 IP 주소 획득
- 1단계 도메인 - 최상위 도메인(TLD - Top Level Domain)
※ 도메인
- 해당 IP 주소와 매칭되는 텍스트
- 사람은 웹사이트에 접속할 때마다 해당 ip 주소를 입력하여 접속하기는 매우 어려울 것이다.
- 따라서, 텍스트로 주소를 만들어서 웹사이트에 접속하는 방식을 사용한다.
- ex)
- www, co, kr 등
22. TCP/IP 4계층에 대해 계층별로 설명하세요.
- OSI 7계층과 차이점
- TCP/IP 4계층은 OSI 7계층을 단순화한 모델
- 실제 사용은 TCP/IP 4계층을 주로 사용
- OSI 7계층은 각 기능에 따른 역할 분리가 더 잘 이루어져있는 모델
- 사용자 → 1계층 → ~ → 4계층 → 서버 순으로 이루어짐
- 계층
- 1계층
- 네트워크 엑세스 계층(network access Layer)
- 물리적으로 데이터를 전송함
- 물리적인 주소는 MAC 사용
- OSI 7계층의 1 계층 + 2 계층 기능과 “유사”
- 2계층
- 인터넷 계층(Internet Layer)
- 라우터를 통해 전송할 IP 주소를 선택하여, 해당 주소에 데이터를 전달
- 해당 데이터에 IP 헤더 부착
- 신호 단위 : 패킷
- OSI 7계층의 3계층과 유사
- 3계층
- 전송 계층(Transport Layer)
- 목적지까지 신뢰할 수 있는 데이터를 보내는 역할
- 종류
- 연결형 통신(TCP)
- 비연결형 통신(UDP)
- 3계층에서 데이터를 붙이는 헤더들
- Port 번호
- TCP or UDP
- OSI 7계층의 4계층과 유사
- 4계층
- 응용 계층(application Layer)
- 두 대상 간에 데이터 교환 이후, 해당 데이터 실행되는 단계
- OSI 7계층의 5~7계층의 기능과 유사
23. 웹 서버와 웹 어플리케이션 서버에 대해 차이를 중점으로 설명하세요.
- 웹 서버
- 정적인 컨텐츠 제공
- 해당 HTTP 요청에 따른 응답을 정적인 웹 사이트로 반환한다.
- 예시 : HTML, CSS, JS
- 웹 어플리케이션 서버
- 동적인 컨텐츠 제공
- 해당 HTTP 요청에 따른 응답을 동적인 웹 사이트로 반환한다.
- 예시 : Servlet, JSP, thymeleaf
24. 공인 IP와 사설 IP의 차이에 대해 설명하세요.
- 차이점
- Public vs Private
- 공인 IP (Public IP address)
- 전세계적으로 공개된 IP 주소
- 모든 PC에서 접근 가능
- 전세계에서 겹치지 않는 독립된 IP 주소
- ISP(인터넷 서비스 제공자)가 해당 IP 주소를 제공함
- ISP 예시 : SK 텔레콤, KT
- 사설 IP (Private IP address)
- 공개되지 않은 내부 네트워크 IP 주소
- ipv4의 주소 부족으로 인해, 중복된 주소를 사용하고자 만들어짐
- 해당 주소를 서브넷팅하여 여러 주소를 만들어냄.
- 해당 내부 네트워크를 통해서만 IP에 접근 가능함.
- 예시 : 인트라넷
※Ipv4 : 프로토콜 버전 4
※서브넷 : 해당 IP 주소 안에서 여러 주소를 만들어내는 기술
※서브넷팅 : 해당 IP 주소 안에서 여러 주소를 만들어냄
24. API GATEWAY
- 사용자의 API 요청을 적절히 응답해 주는 기능
- 응용 프로그램에 대한 모든 API 요청을 받는 서버임
- 장점
- 클라이언트의 모든 요청을 전부 관리 가능
- 여러 요청을 적절히 백엔드 서버들에 분배하여, 서버 부하를 감소시킴
※API : 응용 프로그램이 컴퓨터 자원을 쓸 수 있도록 돕는 기능
※API 요청
- 응용 프로그램이 컴퓨터 자원을 쓰기 위해 API에게 요청을 보내는 것
- 예시
- 사용자 PC의 응용 프로그램 → 서버로 자원 요청