Chapter 6. 전송 계층 : 신뢰할 수 있는 데이터 전송하기
목표
- 전송 계층의 역할을 이해한다.
- 연결형 통신과 비연결형 통신을 이해한다.
- TCP를 이해한다.
- UDP를 이해한다.
23. 전송 계층의 역할
1. 전송 계층
- 목적지에 신뢰할 수 있는 데이터를 전송하기 위해 필요
- 오류 점검 기능 : 오류 발생 시 데이터 재전송 요청
- 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별
2. 전송 계층의 특징
- 연결형 통신 = 신뢰성/정확성 : 데이터를 목적지에 문제없이 전달하는 것 -> TCP 프로토콜 사용
- 비연결형 통신 = 효율성 : 데이터를 빠르고 효율적으로 전달하는 것 -> UDP 프로토콜 사용
24. TCP의 구조
1. TCP
- 연결형 통신 프로토콜 : 신뢰성/정확성 우선
- TCP 헤더 : TCP로 전송할 때 붙이는 헤더
- 세그먼트 : TCP 헤더가 붙은 데이터
2. 코드비트
- TCP 헤더의 107번째 비트 - 112번째 비트 = 6비트
- 연결의 제어 정보 기록
- 각 비트별 역할 존재
- 초기값 : 0 / 활성화 : 1
3. 연결 확립 요청/ 연결 확립 응답 SYN/ACK
- SYN : 연결 확립 요청
- ACK : 연결 확립 응답
4. 3-way 핸드셰이크 three-way handshake
- 데이터 전송 전, 연결 확립을 위해 패킷 요청을 세 번 교환하는 것 : 연결 요청 활성화 -> 확인 응답 + 연결 요청 활성화 -> 확인 응답 활성화
5. 연결 종료 요청/연결 종료 응답 FIN/ACK
- FIN : 연결 종료 요청
- ACK : 연결 종료 응답
- 단계 : A) 연결 종료 요청 -> B) 연결 종료 응답 -> B) 연결 종료 요청 -> A) 연결 종료 응답
25. 일련번화와 확인 응답 번호의 구조
1. 일련 번호
- TCP가 데이터를 분할해서 보낼 때, 해당 데이터가 몇 번째 데이터인지 알려주는 역할
2. 확인 응답 번호
- 수신 측이 몇 번째 데이터를 수신했는지 송신 측에 알려주는 역할
-> 다음 번호의 데이터 요청 시 사용 = 확인 응답
-> 효율이 낮다 : 통신 한번에 응답 한번씩 반환하는 방식이기 때문
-> 효율을 높이는 법 : 세그먼트(데이터)를 연속해서 보내고, 확인 응답 반환
3. 버퍼
- 받은 세그먼트를 일시적으로 보관하는 장소
4. 오버플로
- 수신 측에 대량으로 데이터 전송 시, 보관 가능한 데이터를 초과해 넘쳐버리는 것
5. 윈도우 크기 (in TCP 헤더)
- 버퍼의 한계 크기
- 얼마나 많은 용량의 데이터를 저장해 둘 수 있는지
- 3-way 핸드셰이크를 할 때 판단함
26. 포트 번호의 구조
1. 출발지 포트 번호 source port number, 목적지 포트 번호 destination port number
- 전송된 데이터의 목적지가 어떤 애플리케이션인지 구분하기 위해 필요
- 0 ~ 65535번 사용 가능
- 0 ~ 1023 : 주요 프로토콜 well-known ports -> 서버 측 애플리케이션에서 사용
- 1024 : 예약되었지만 사용되지 않음
- 1025 ~
- 랜덤 포트
- 클라이언트 측의 송신 포트로 사용
애플리케이션 | 포트 번호 |
SSH | 22 |
SMTP | 25 |
DNS | 53 |
HTTP | 80 |
POP3 | 110 |
HTTPS | 443 |
- 웹 브라우저에는 임의의 포트가 자동 할당됨
27. UDP의 구조
1. UDP
- 비연결형 통신
- 효율성 중시 : 데이터를 효율적으로 빠르게 보내는 것이 목적 ex. 동영상 서비스
- UDP 데이터그램 : UDP 헤더가 붙은 데이터
- TCP와 UDP의 세그먼트 송신 비교
2. 브로드캐스트
- 랜에 있는 컴퓨터나 네트워크 장비에 데이터를 일괄로 보내는 것
Chapter 7. 응용 계층 : 애플리케이션에 데이터 전송하기
목표
- 응용 계층의 역할을 이해한다.
- 웹 서버의 구조를 이해한다.
- DNS의 이름 해석 구조를 이해한다.
- 메일의 송수신 구조를 이해한다.
28. 응용 계층의 역할
1. 클라이언트
- 서비스를 요청하는 측 ex. 웹 브라우저, 메일 프로그램 등의 애플리케이션
2. 서버
- 서비스를 제공하는 측 ex. 웹 서버 프로그램, 메일 서버 프로그램 등
3. 응용 계층(세션 계층, 표현 계층 포함)
- 애플리케이션이 동작하는 계층
- 클라이언트의 요청을 전달하기 위해, 서버가 이해할 수 있는 데이터로 변환 후 전송계층으로 전달하는 역할
- 클라이언트 측 애플리케이션 - 서버 측 애플리케이션 통신을 위해 프로토콜 사용
- 이름 해석 : 네트워크에서 컴퓨터나 네트워크 장비에 붙여진 이름을 기반으로 IP 주소를 알아내는 것 (= DNS 사용)
4. 각 계층의 프로토콜 및 기술 정리
응용 계층 | HTTP | DNS | FTP | SMTP | POP3 | 기타 프로토콜 |
전송 계층 | TCP | UDP | ||||
네트워크 계층 | IP 등 | |||||
데이터 링크 계층 | 이더넷 | |||||
물리 계층 | 전기 신호 변환 |
29. 웹 서버의 구조 (웹 사이트 접속)
1. WWW (W3/Web/World Wide Web)
- HTML, URL, HTTP 사용
2. HTML
- 태그를 사용하는 마크업 언어
- 하이퍼텍스트Hypertext를 작성하는 마크업 언어
- 문자, 이미지 표시
- 하이퍼링크Hyperlink 사용 (=link)
3, HTTP
- 클라이언트에서 웹서버에 80번 포트를 사용해 HTTP 통신을 함
- HTTP Request <-> HTTP Response
- HTTP/1.0 버전
- 매번 요청을 보낼 때마다 연결했다, 끊는 작업 반복 -> 느림
- HTTP/1.1
- keepalive 기능 : 데이터 교환이 모두 끝나야 연결을 끊는 구조(동기식)
- HTTP/2
- 좀더 빠르게 데이터를 처리할 수 있도록, 요청 순서와 상관없이 응답을 반환하는 비동기식
30. DNS 서버의 구조(이름 해석)
1. DNS Domain Name Server
- URL을 IP로 변환해주는 역할을 하는 서버
- 도메인 이름 : 네트워크나 컴퓨터를 식별하기 위해 붙여진 이름ex. www.github.com
- 호스트(서버) 이름 : 도메인 이름 앞의 www
- 과정
1. 브라우저에 URL 입력
2. 브라우저에서 Local DNS에게 url에 해당하는 IP 정보 요청
3. local DNS에 정보가 존재하지 않을 시, root DNS에 요청
4. root DNS에도 존재하지 않을 시, com DNS에 요청
5. com DNS에도 존재하지 않을 시, 하위 도메인(naver.com 등) DNS에 요청
6. 하위 도메인 DNS가 해당하는 IP 응답
31. 메일 서버의 구조 (SMTP와 POP3)
1. SMTP
- 메일 전송 시 사용되는 프로토콜
- 25번 포트 사용
2. POP3
- 메일 수신 시 사용되는 프로토콜
- 110번 포트 사용
3. 메일 박스
- 메일을 보관해주는 기능
4. 메일 송수신 흐름
Chapter 8. 네트워크의 전체 흐름 살펴보기
목표
- OSI 모델의 전체 흐름을 이해한다.
- 웹에 접속할 때 이루어지는 캡슐화와 역캡슐화를 이해한다.
23. 랜 카드에서의 데이터 전달과 처리
1. OSI 모델로 네트워크 구성 살펴보기
2. 캡슐화와 역캡슐화
33. 스위치와 라우터에서의 데이터 전달과 처리
1. 스위치
- (A 컴퓨터) 물리 계층 -> 데이터 링크 계층 -> (B 컴퓨터)물리 계층으로 데이터 전달
2. 라우터
- (A 스위치) 물리 계층 -> (A 라우터) 데이터 링크 계층(데이터 분리) -> 네트워크 계층으로 데이터 전달(역캡슐화)
- (A 라우터) 네트워크 계층 -> 데이터 링크 계층(데이터 추가) -> (B 라우터)물리 계층
34. 웹 서버에서의 데이터 전달과 처리
1. 웹 서버에서 이루어지는 OSI 모델의 역캡슐화
'공부 > TIL' 카테고리의 다른 글
[Tistory 스킨 편집] hELLO 스킨 적용 시 첫번째 카테고리들만 펼치기 (0) | 2023.07.05 |
---|---|
[vue.js + electron] electron:serve에서는 보이던 화면이 electron:build하면 안보일 때 해결 방법 (0) | 2023.07.03 |
[모두의 네트워크] 3장 - 5장(물리 계층 - 네트워크 계층까지) (0) | 2023.06.24 |
[모두의 네트워크] 네트워크 첫걸음, 네트워크의 기본 규칙 (0) | 2023.06.17 |
EChart 차트 영역 별로 각각 배경 색 지정(markArea) (0) | 2023.03.17 |