통신

Jan 08, 2024
통신
물리적인 선 : 전류가 흐름
반도체에서 0 OR 1로 처리함
데이터가 실제로 흐르는 것은 O OR 1 이기에 bit가 전송되는 것
개발자 입장에서는 ByteStream으로 보면 됨
그 외의 선은 다 구현이 되어있음
 
통신의 기본 : 응답이 와야 함
3 way handshake : 3번 왔다갔다 하는 것
 
프로토콜 : 컴퓨터 간에 상호통신을 할 때 데이터를 원활하고 신뢰성 있게 주고 받기 위한 약속
같은 프로토콜을 사용하면 컴퓨터 상호간에 통신할 수 있고 데이터의 의미를 일치시켜 원하는 동작을 시킬 수 있음
 
TCP/IP 통신의 프로토콜 5계층
Application
응용 프로그램 계층
네트워크 통신에 필요한 응용 프로그램이 있는 곳 전송 계층을 사용하여 원격 호스트에 연결 요청을 보냄
OS
전송 계층 / 세그먼트
서로 다른 호스트에서 실행 중인 응용 프로그램 사이의 연결을 설정 포트 번호를 할당하여 상위 응용 프로그램에서 실행 중인 프로세스를 추적네트워크 계층을 사용하여 접근
OS
네트워크 계층/패킷
패킷을 생성하여서 서로 다른 네트워크로 전송 IP주소 > 패킷의 소스와 대상을 식별
HW
데이터 링크 계층
프레임 생성, 점대점 방식으로 이동 프레임 : 캡슐화된 패킷을 감싸고 있음, MAC 주소를 사용하여 소스와 대상 식별
HW
물리적 계층
프레임 안에 bit들이 부호화
 

1. 통신의 종류

TCP(Transmission Control Protocol) : 신뢰성 있는 통신

서로 간의 연결을 설정한 후 통신
데이터의 순서가 보장됨 → HTTP, FTP 등이 사용
각 프로그램은 소켓을 연결의 양 끝점에 접속함
단점 : 연결과 연결을 해제하는 과정에 시간이 많이 걸림
짧은 데이터를 보낼 때 부담이 됨
ex) ID, Passward
notion image
** 소켓 : 개념적으로 응용 프로그램과 포트 사이에 존재
하나의 포트에 하나의 소켓을 만들어 결합
** 포트 : 각각의 응용 프로그램이 사용하는 가상적인 통신 선로
0~ 65535까지 정수를 사용하여 표기
0~1023 : well—known port / 미리 예약되어 있음
1023 ~ : 사용가능하나 컴퓨터 마다 다를 수 있음

UDP(User Datagram Protocol) : 신뢰성 없는 통신

데이터를 몇 개의 고정 길이의 패킷(다이어그램)으로 분할한 다음 패킷 앞에 주소를 붙여 전송
순서가 바뀔 수 있음
데이터가 유실 될 수 있음
장점 : 연결 절차가 필요 없어 빠르고 효율적인 통신 가능 → UCC같은 동영상 서비스에 사용
 
인간에게 보낼 때만 유실이 되어도 해석 가능
ex) 사람간의 통화
영화 : 끝이 없는 사진을 전송하는 스트리밍 / 속도가 중요함
사진이 유실되도 보는데는 지장 없음
notion image
 
 
선이 하나면 : 전용선
데이터 전송시 매우 빠름
 
1) 서킷 스위칭 : 통신하는 주체가 늘어날 수록 회선이 늘어남
돈이 엄청 많이 듦
notion image
 
2) 패킷 스위칭 : 위치에 따라 라우터를 묶어서 통신함
notion image
라우터(물리적인 기계) : 받은 데이터를 포워딩(재전송)
 
동시에 1명에게 데이터 전송 > 우선순위 알고리즘이 발생
최악의 알고리즘이 FIFO > 불만 발생 가능
 
세그먼트(Segment) : 데이터를 Byte보다 더 작게 쪼개는 것
os가 세그먼트로 나눈 후 고유 번호를 만들어줌
→ 데이터의 순서를 알려줌
 
헤더(Header) : 데이터를 설명해주는 것
출발지 주소, 목적지 주소 : IP 주소
바디(Body) : 진짜 데이터
RR(Round Robin)로 전송
 
데이터는 가장 가까운 라우터가 받음
데이터만 받으면 어디에 전송되는지 모름
 
에크(Ack) : 응답
 
패킷(Packet)으로 만들어져서 전송됨
 
응답시
패킷에 있는 에크 놀로지 주소를 보고 전송함
a를 받고 응답이 와야 그 다음 b를 전송함
 
💡
데이터 유실 가능성
  • 양쪽의 라우터 중 어느 한 라우터의 용량 부족
  • 어느 한 라우터가 OFF인 경우
 
응답이 안오면 데이터를 재전송함 > 재조립을 해야 함
패킷을 헤더와 바디로 분리
 
캡슐레이션 : 포장
디캡슐레이션(Decapsulation) : 포장을 벗김
에크놀로지를 보냄
응답이 다시 올 때까지 기다리고 응답이 안오면 데이터를 버림
 
영역 : os의 버퍼
최적의 경로를 찾아주는 것 : 라우터
컴퓨터가 가장 가까운 라우터로 데이터를 전송
 
라우터가 최단 경로를 계산
패킷이 없으면 최적의 경로를 못 찾음
데이터가 몰리면 traffic이 발생 > 어떤 데이터가 먼저 도착할지 알 수 없음
>세그먼트가 없으면 순서대로 재조립이 안됨
 
이때 통신에서의 파일이 소켓이 됨
 
 
Share article
RSSPowered by inblog