2계층으로는 가까운 컴퓨터끼리 데이터 주고 받음.
3계층에서 다른 네트워크로 넘어감.
다른 네트워크 대역의 컴퓨터에서 동작하는 여러 프로그램 중 내가 통신하고 싶은 특정 프로그램과 내 컴퓨터에서 동작하는 여러가지 프로그램 중에서 하나의 프로그램이 서로 어떻게 데이터를 주고 받는지 ➡️ 클라이언트-서버
ex)게임 서버 - 게임 클라이언트가 서로 어떻게 데이터를 주고 받는지
4계층이 상대방 컴퓨터의 특정 프로그램까지 어떻게 찾아가는지를 담당
전송 계층(Transport layer)은 송ㅅ니자의 프로세스와 수신자의 프로세스를 연결하는 통신 서비스를 제공.
전송 계층은 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 그리고 다중화와 같은 편리한 서비스를 제공한다.
전송 프로토콜 중 가장 잘 알려진 것은 연결 지향 전송 방식을 사용하는 전송 제어 프로토콜(TCP)이다. 보다 단순한 전송에 사용되는 사용자 데이터 프로그램 프로토콜(UDP)도 있다.
연결 됐는지, 데이터가 잘 갔는지 확인
과정이 복잡하다.
연결이 안 되어있어도 그냥 데이터를 던짐.⚾
과정이 복잡하지 않다.
특정 프로세스와 특정 프로세스가 통신을 하기 위해 사용.
하나의 포트는 하나의 프로세스만 사용 가능하다.
하나의 프로세스가 여러 개의 포트를 사용하는 것은 가능하다.
포트 번호는 일반적으로 정해져 있지만 무조건 지켜야 하는 것은 아니다.
예를 들어 일반적으로 웹 서비스는 80번 포트를 사용하지만 웹 서비스가 항상 80번 포트를 사용해야만 하는 것은 아니다.
유명한 서버가 사용하는 포트번호. 절대적인 것은 아님.
웹 서비스 : HTTP
+추가로 알아야 하는 포트
IMAP
SMTP - 25, 465, 587
SNTP
*서버 : 실행하는 프로그램. 장비(사양이 좋은 컴퓨터)를 말하기도 하지만 프로그램을 실행해야 서버가 됨.
Well-Known 포트 다음으로 분류된 포트. 위의 표에 나와있는 것 외에도 많음.
Well-Known 포트 보다는 아니지만 어늩정도 공신력 있는 곳에서 등록한 포트. 범위 : 1024<Registered 포트<49000
서버(프로그램)에 접속하는 사용자들이 쓰는 포트 번호.
프로그램과 프로그램이 연결 시 상대방 프로그램으로 연결할 때 씀.
크롬이라는 프로그램이 네이버의 웹 서버에 연결될 때 위의 포트번호 사용
활성 연결 테이블 : 현재 포트 활성여부를 나타냄
크롬으로 네이버를 실행하고
cmd에 netstat -ano 명령어를 입력하면
위와같이 네이버의 웹 서버(443)와 크롬이 연결된 걸 알 수 있다.
둘이 연결이 되었기 때문에 네이버 페이지를 받아온 것임. 받아온 데이터를 웹 브라우저에서 렌더링
web 브라우저에서 naver.com.:443 중 .:443을 자동으로 생략해줌.
WebShare 프로그램을 실행시키고 '환경설정>포트'에서 포트번호를 80에서 9999로 바꿔준다. 그리고 cmd에 netstat -ano 명령어로 포트번호 9999의 pid(53636)를 작업관리자에서 확인하면 WebShare의 pid인 것을 확인할 수 있다.
*pid : Process ID. 프로세스 ID
https://youtu.be/tG0ldt4sBzY
https://youtu.be/Jb7tCFp-udM
https://youtu.be/Qqmwm3rFihk