Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- VUE
- 신입 개발자 면접
- ECS
- github accesstoken
- aws m2
- index in
- kubernetes
- OSI 7계층
- 신입 면접 팁
- 개발자 전직
- git
- 라즈베리바이4 mongo
- index like
- 쿠버네티스
- 개발자 회고록
- 개발자 취업 준비
- token 탈취
- nestjs
- 팩토리 패턴 예제
- 밸런스 게임
- mongo 4.4
- 인텔리제이 github 로그인
- docker m2
- mysql index 속도차이
- mongo 4.4.18
- mysql like
- 회고록
- 팩토리 패턴 언제
- 퇴사
- 개발자 면접 팁
Archives
- Today
- Total
주니어 개발자 1호
TCP/IP 4계층 모델 본문
OSI 7 / 4 계층
설명
- 네트워킹 범위에 따라 4개, 7개의 추상화 계층으로 제공함
- 실제로 사용되는 인터넷 표준은 TCP/IP 4계층
- 논리적으로 세분화 하여 추상화한 7 계층으로 나눔
- 실제 네트워크는 TCP/IP가 4계층
- 어플레케이션을 운영하기 위해 더 세부적으로 나눈 개념이 OSI 7 계층
계층 분석
- 위 그림처럼 계층이 나누어져있으며 아래에 위치해있을수록 데이터를 확인할 수 있는 권한이 낮다.
- 특정 계층에서 사용하는 프로토콜등이 바뀌더라다도, 역할만 유지한다면 계층 구조는 이전과 같이 돌아감.
- 이는, 여기서의 특정이 아닌 Layer 라는 개념을 이해하면 좋을 것 같음 ( input. out은 유지가 되어야 됨 )
- UDP → TCP 로 바뀌더라도 영향이 없음. ( 단, 이 예시로 들 때 유실은 있을 수 있어도. 역할은 바뀌지 않음 )
- 예시) 회사에서 여러 부서가 있는데, 한 부서의 사람이 바뀌더라도. 업무에 영향은 없음
TCP 1계층 / OSI 1,2계층
- 링크, 네트워크 인터페이스 계층
- 설명:
- OSI 1, 2계층에 해당되며 TCP/IP 패킷을 네트워크 매체로 송수신하는 과정을 담당함.
- 네트워크 장치를 통해 송,수신 되는 것을 담당하는 Layer ( 패킷, 전송 주소는 mac을 참조)
- 세분화 시키기
- 물리 계층
- 하드웨어 전송 기술로 이루어짐. 비트(2진수)로 이루어져 있다. 0101011 단지 전송만을 담당
- 흔히 쓰는 Lan Cable을 생각해주면 좋다.
- 데이터 링크 계층
- 흐름 제어, 접근 제어를 담당하는 계층.
- STP (Spanning Tree Protocol): 이더넷 네트워크에서 루핑 문제를 방지하기 위해 사용되는 프로토콜
- PPP (Point-to-Point Protocol): 직접 연결된 두 지점 간의 연결에 사용되는 프로토콜입니다. 주로 다이얼업 및 VPN 연결에 사용됩니다. ( 최단 거리 )
- 네트워크 기기의 일련번호 ( MAC Adress )를 기반으로 통신을 진행함.
- 무선 랜 카드, PC 랜선 / 스위치 꽂는 부분 등을 생각해주면 좋다.
- 흐름 제어, 접근 제어를 담당하는 계층.
- 물리 계층
- 설명:
TCP 2계층 / OSI 3계층
- 인터넷 계층, 네트워크 계층
- 설명: 인터넷 계층은 장치로 부터 받은 네트워크 패킷을 IP 주소로 전송하기 위해 사용되는 계층. IP, ARP, ICMP등이 있으며 패킷을 수신해야하는 상대의 IP주소로 데이터를 지정하여 데이터를 전달함.
- IP(주소)를 기반으로 경로를선택해 데이터를 전달. 흔히 아는 IP주소가 해당 Layer의 개념.
- IP의 개념은 내부 IP, 외부용 IP가 있음
- 내부 IP의 경우 공유기등을 통해 정해진 사내의 내 IP
- 공유기를 사용하는 사람은 같은 IP를 통해 통신이 나가게 됨.
- 공유기 (1) : PC (N) 의 관계
- NAT
- 사내에서 중복 IP 문제가 있다면 어떤 문제점이 발생하는지 고민해보면 좋을 것 같음.
- IP의 개념은 내부 IP, 외부용 IP가 있음
TCP 3계층 / OSI 4계층
- 전송계층
- 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할을 수행함.
- 전송 계층은 대표적으로 TCP/UDP등이 있다.
- TCP
- 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해 연결해 신뢰성을 구축함.
- 보낸 순서대로 받음
- UDP
- 순서를 보장하지 않고 수신 여부를 확인하지 않으며, 단순히 데이터만 주고 받음
- 보낸 순서대로 받지 않음.
- 그렇기에 전송만 하면 종료되므로, 신뢰성 보단 속도가 중요한 스트리밍같이 연속적인 서비스에 주로 이용함.
- 이 계층에서 PORT 개념을 사용함.
- TCP 연결 성립 과정
- 3-way-handshake
- 서로 다른 IP두개에 대한 신뢰성을 확보 시키기 위한 방식
- 3-way-handshake
- SYN:
- 클라이언트에서 서버에 전송
- Client의 ISN을 전송
- 시퀀스 넘버가 생성되며, 랜덤한값으로 설정된다.
- 클라이언트에서 서버에 전송
- SYNC + ACK
- 서버에서 클라이언트에게 전송
- 서버는 ACK = 클라이언트의 ISN+1을 보내주고
- 자신의 ISN을 발급해준다. 이 때 서버는 요청이 많기에 수많은 클라이언트로부터 같은 시퀀스넘버를 주지 않게 ( 섞이지 않게 랜덤으로 발급 )
- ACK
- 클라이언트에서 → 서버
- 서버의 ISN의 +1 한 값을 보냄
- 클라이언트에서 → 서버
.그렇기에 UDP에 비해 TCP가 연결에 대해 리소스를 사용하기에 많은 연결이 일어난다면, 부하가 있는편
- 이렇게 SYN, ACK등을 검증해서 서로 식별하여 신뢰성이 구축된다.
- TCP 연결 해제 성립 과정
- 클라이언트 → 서버 연결 종료 요청
- FIN으로 설정된 세그먼트를 보냄
- 클라언트는 FIN_WAIT_1의 상태로 설정됨
- 서버 → 클라이언트 ( 승인 확인 )
- 클라이언트에게 ACK 승인 세그먼트 전송
- 서버는 CLOSE_WAIT의 상태에 들어감
- 서버 → 클라이언트 ( FIN - 종료 ) 전송
- ACK를 보낸 이후 일정 시간( 무결성 확보를 위함 ) 이후에 클라이언트에 FIN이란 세그먼트 전송
- 클라이언트
- TIME_WAIT 상태에서 ACK를 서버에 보내어 서버는 CLOSE 상태가 된다.
- 전반적으로 TCP - 신뢰성, 무결성을 보장하기 위한 연결과정
- 연결을 바로 끊어 버리면 데이터, 네트워크의 무결성이 보장되지 않음
- 늦게올 수 있는 패킷이 존재할 수도 있기에.
- CentOS , 우분투 기준 60초
- 윈도우 기준 4분
- 연결을 바로 끊어 버리면 데이터, 네트워크의 무결성이 보장되지 않음
애플리케이션 계층
- 애플리케이션 계층은 웹이나 이메일과 같은 서비스를 제공하는 계층입니다.
- 각 서비스의 독자적인 프로토콜을 가지고있습니다.
- EX)
- 웹: HTTP
- 메일 관련: POP, SMTP, IMAP
- SMP, AFP: 파일공유
- Other - DNS, DHCP, SSL,TLS
- TCP 4계층 / OSI 5,6,7 계층
- TCP - 애플리케이션 계층
- OSI
- 5계층 세션 계층
- 데이터 통신의 세션을 설정, 관리 및 종료하는 역할을 수행합니다.
- 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공.
- TCP/IP 세션을 만들고 없애는 책임이 있음
- API서버의 세션 개념보다는, 통신 프로토콜을 설정, 유지, 종료하는 기능을 담당
- 6계층 프레젠테이션 계층
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공, 암호화.
- EBCDIC로 인코딩된 데이터를 ASCII로 변환하는 것등
- 예를 들면, JSON, XML, Protobuf 등의 데이터 형식을 변환하거나 파싱하는 작업
- 암호화, 압축, 데이터 전송간의 추상화 제공 계층
- TLS(Transport Layer Security)와 같은 프로토콜을 사용하여 데이터를 암호화하거나 복호화하는 작업을 수행
- 7계층 애플리케이션 계층
- 데이터의 목적지로서 http등과 같은 프로토콜이 있음
- 네트워킹 범위에 따라 4개, 7개의 추상화 계층으로 제공함
- 실제로 사용되는 인터넷 표준은 TCP/IP 4계층
- 논리적으로 세분화 하여 추상화한 7 계층으로 나눔
- 데이터의 목적지로서 http등과 같은 프로토콜이 있음
- 5계층 세션 계층
'개발관련 Tip' 카테고리의 다른 글
패러다임의 혼합 (0) | 2023.09.17 |
---|---|
MVP Pattern (0) | 2023.09.17 |
팩토리 패턴에 대해 쉽게 설명해보기 (0) | 2023.09.17 |
싱글톤 패턴 (0) | 2023.09.17 |
INDEX 테스트 해보기 (2) | 2023.07.16 |