[인터넷 네트워크]
2024.01.17
오늘 정리할 부분은 인터넷 네트워크에 관한 부분입니다.
개발자로 취업 후에 기초 개념 부분에서 가장 부족했던 제게 많은 도움이 되었던 강의를 다시 보고 정리하고자 합니다.
인프런 - 김영한 강의 http웹 기초 정리 https://inf.run/8ZEU8
모든 개발자를 위한 HTTP 웹 기본 지식 강의 - 인프런
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술
www.inflearn.com
1. 인터넷 통신
인터넷에서 두 컴퓨터가 통신하는 방법은
클라이언트(User)가 서버로 요청을 보내고 서버는 그에 응답하는 식이다.
☆
중요한것은 이때 클라이언트 방향에서 보낸 요청은 거대한 인터넷의 세계를 탐험하게 되는데.
수많은 클라이언트와 서버가 연결된 복잡한 인터넷 망 안에서
수많은 노드들을 보고 정확한 서버를 찾아서 해당 요청에 따른 정보를 전달하고
그에 대한 응답을 받아오는 것은 매우 복잡하고 어려운 방식이다.
따라서 우리는 아래의 개념을 명확하게 이해하여야 한다.
2. IP(Internet Protocol)
IP란 각 노드들에 부여되는 하나의 주소이다.
클라이언트가 보낸 요청은 상대 서버에 부여된 주소를 보고 찾아갈 수 있는 것이며
이때 요청과 응답에 담긴 정보들은 하나의 패킷이라는 통신단위로 전달된다.
IP 패킷에 담긴 정보 = 출발지IP, 목적지IP, 기타 정보 및 데이터
- IP프로토콜의 한계
- 비연결성
- 대상이 패킷을 받을 수 없거나 불능 상태여도 패킷 전송
- 비신뢰성
- 패킷의 소실 가능성
- 패킷 정보의 순서 구분
- 프로그램(애플리케이션) 구분
- 같은 IP를 공유하는 하나의 서버내 통신하는 애플리케이션(프로그램)이 두개 이상이라면 패킷 소실 가능성이 있음
3.TCP,UDP
TCP (Transmission Control Protocol) 즉 전송 제어 프로토콜로 해석할 수 있다.
연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용된다.
이러한 TCP는 IP와 함께 사용되는것이 보편적인데 이때 IP는 데이터의 배달을 처리하는 부분이며
TCP는 패킷을 추적 및 관리하게 된다.
[TCP의 특징]
- 연결 지향 방식으로 3-way handshacke 방식을 사용하여 연결을 수립하고 4-way. handshacke과정을 통해 해제한다.(가상 연결)
- 데이터 전달 보증 및 순서를 보장 (높은 신뢰도)
- 데이터의 흐름 및 혼잡 제어
- UDP보다 느림
UDP (User Datagram Protocol) 즉 사용자 *데이터그램 프로토콜 로 해석할 수 있다.
이는 비연결형 프로토콜로 연결을 위한 논리적 경로가 없다.
* Datagram 은 독립적 관계를 지니는 패킷이라는 의미
[UDP의 특징]
- 하얀 도화지에 비유 (기능이 거의 없음)
- 비연결형 서비스로 연속성이 더욱 우선된다.
- 데이터 전달 보증 X 및 순서 보장 X (낮은 신뢰도)
- IP와 거의 같으며 PORT와 CheckSum 필드를 통해 최소한의 오류만을 검사한다.
- 애플리케이션 내 추가작업이 필수이다.
TCP UDP에 대해 정말 잘 정리해준 블로그 글이 있어 첨부합니다.
https://mangkyu.tistory.com/15
[TCP/UDP] TCP와 UDP의 특징과 차이
오늘은 네트워크의 계층들 중 전송 계층에서 사용하는 프로토콜에 대해서 알아보려고 합니다. 전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의
mangkyu.tistory.com
TCP서버와 UDP서버에 관한 정리도 되어있으니 꼭 보길 바랍니다.
TCP, UDP는 기본적으로 전송 계층이다.
개인적으로 저는 전공자가 아니라서 이 부분에 대해서 이해하기 쉽지 않았습니다.
OSI 7계층? TCP/IP 4계층?
처음에 접했을 때는 완전히 다른 부분에서 사용되는 개념인 줄 알았고 무엇에 사용되는 개념인지도 잘 몰랐습니다.
이는 두 개념 전부 네트워크 통신을 나눈 단계 입니다.
https://shlee0882.tistory.com/110
OSI 7 계층이란?, OSI 7 계층을 나눈 이유
1. OSI 7 계층이란? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 1.1 OSI 7 계층을 나눈이유는? 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있
shlee0882.tistory.com
https://velog.io/@dyunge_100/Network-TCPIP-4계층에-대하여
[Network] TCP/IP 4계층에 대하여
두 계층 모두 데이터 통신을 표현한 계층이긴 하지만 OSI 7계층은 데이터 통신에 필요한 계층과 역할을 정확하게 정의하려고 한 모델이다. 그에 반해 TCP/IP 4계층은 현재 인터넷에서 사용되는 프
velog.io
4.PORT
하나의 컴퓨터에서 여러개의 작업을 할 경우 컴퓨터 서버내 PORT라는 것을 반드시 알아야 한다.
실무를 진행하면서 하나의 서버에서 여러개의 포트를 사용해서 복합적인 프로그램을 사용하는 것을 보고
이런 방식으로 포트라는 것이 사용되며 이러한 포트를 통해 프로세스를 구분하여 사용된다는 것을 알았다.
개인적으로는 반드시 완벽히 이해해야하는 개념이라고 생각한다.
PORT 란 "논리적인 접속장소" 를 뜻한다.
이는 TCP/IP 를 사용 할 때 클라이언트의 프로그램 및 요청이 네트워크 상의 특정 서버, 특정 프로그램을 지정하는 방법으로 사용된다.
풀어서 이야기하자면 위 개인의 경험으로 알게되었듯이
하나의 요청이 여러개의 프로그램이 작동되고 있는 서버 내에서 정확한 프로그램을 찾아 가기 위해 연결된 접속장소 인 것이다.
개발자라면 3000 or 8080 을 정말 많이 들어보았을텐데
1xx.xxx.xx.xx:3000
2xx.xxx.xx.xx:8080
서버(집)의 주소와 상세 주소 정도로 생각하면 좋을 듯 싶다.
• 0 ~ 65535 할당 가능
• 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
• FTP - 20, 21
• TELNET - 23
• HTTP - 80
• HTTPS - 443
5.DNS
DNS란 (Domain Name System) 의 약자로 즉 IP 주소에 이름을 붙혀서 명명하는 시스템이다.
예시를 들어보면 125.209.222.141 이 IP 주소는 NAVER 의 IP 주소로
우리는 흔히 주소창에 naver.com 을 치면 위 도메인 네임이 125.209.222.141 로 변환되어 요청되는 방식이다.
또한 이러한 IP는 변경될 수 있다는 것을 생각하면 도메인은 상당히 편한 시스템이 아닐 수 없다.