Хорошо, IP и маску я поставлю наши, а что делать с размером этого пакета? Попробовать различные значения?
Малая интернет скорость
Хорошо, я немного по изучал про MTU (http://tips.jalita.com/windows/int_net/tweak_5.shtml) и понял что если у клиента и провайдера этот параметр не совпадает, то передача информации не будет эффективной. В Windows XP это легко можно проверить попробовав пропинговать основной шлюз пакетами размером, например, 1472 бита и больше. В случае превышения в консоле появляется сообщение об фрагментации пакетов. Я только что проверил это на собственном компьютере где у меня Windows XP и Ubuntu 10.1.
[console]
C:\Documents and Settings\Андрей>ping -f -l 1472 78.84.64.1
Обмен пакетами с 78.84.64.1 по 1472 байт:
Ответ от 78.84.64.1: число байт=1472 время=39мс TTL=255
Ответ от 78.84.64.1: число байт=1472 время=39мс TTL=255
Ответ от 78.84.64.1: число байт=1472 время=37мс TTL=255
Ответ от 78.84.64.1: число байт=1472 время=38мс TTL=255
Статистика Ping для 78.84.64.1:
Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
Приблизительное время приема-передачи в мс:
Минимальное = 37мсек, Максимальное = 39 мсек, Среднее = 38 мсек
C:\Documents and Settings\Андрей>ping -f -l 1473 78.84.64.1
Обмен пакетами с 78.84.64.1 по 1473 байт:
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Статистика Ping для 78.84.64.1:
Пакетов: отправлено = 4, получено = 0, потеряно = 4 (100% потерь),[/console]
А вот на Ubuntu я никакого заметного отличия не увидел при превышении размера пакетов:
[console]andrej@ubuntu:~$ ping -s 1472 -c 5 78.84.64.1
PING 78.84.64.1 (78.84.64.1) 1472(1500) bytes of data.
1480 bytes from 78.84.64.1: icmp_req=1 ttl=255 time=38.9 ms
1480 bytes from 78.84.64.1: icmp_req=2 ttl=255 time=38.5 ms
1480 bytes from 78.84.64.1: icmp_req=3 ttl=255 time=37.5 ms
1480 bytes from 78.84.64.1: icmp_req=4 ttl=255 time=38.5 ms
1480 bytes from 78.84.64.1: icmp_req=5 ttl=255 time=39.1 ms
--- 78.84.64.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4012ms
rtt min/avg/max/mdev = 37.563/38.555/39.113/0.542 ms
andrej@ubuntu:~$ ping -s 1473 -c 5 78.84.64.1
PING 78.84.64.1 (78.84.64.1) 1473(1501) bytes of data.
1481 bytes from 78.84.64.1: icmp_req=1 ttl=255 time=40.3 ms
1481 bytes from 78.84.64.1: icmp_req=2 ttl=255 time=40.7 ms
1481 bytes from 78.84.64.1: icmp_req=3 ttl=255 time=39.1 ms
1481 bytes from 78.84.64.1: icmp_req=4 ttl=255 time=39.8 ms
1481 bytes from 78.84.64.1: icmp_req=5 ttl=255 time=39.8 ms
[/console]
Как же тогда в Ubuntu проверить правильность подбираемого MTU? Ведь надо не больше не меньше а именно такое же как у провайдера.
Можно меньше )
ping -s 1473 ya.ru -M do если ничего не путаю. мана под рукой нет.
[console]man ping[/console]
[console]andrej@ubuntu:~$ ping -s 1473 -c 5 78.84.64.1 -M do
PING 78.84.64.1 (78.84.64.1) 1473(1501) bytes of data.
From 78.84.79.119 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 78.84.79.119 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 78.84.79.119 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 78.84.79.119 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 78.84.79.119 icmp_seq=1 Frag needed and DF set (mtu = 1500)
--- 78.84.64.1 ping statistics ---
0 packets transmitted, 0 received, +5 errors
andrej@ubuntu:~$ ping -s 1472 -c 5 78.84.64.1 -M do
PING 78.84.64.1 (78.84.64.1) 1472(1500) bytes of data.
1480 bytes from 78.84.64.1: icmp_req=1 ttl=255 time=209 ms
1480 bytes from 78.84.64.1: icmp_req=2 ttl=255 time=216 ms
1480 bytes from 78.84.64.1: icmp_req=3 ttl=255 time=230 ms
1480 bytes from 78.84.64.1: icmp_req=4 ttl=255 time=243 ms
1480 bytes from 78.84.64.1: icmp_req=5 ttl=255 time=140 ms
[/console]
Вроде бы оно. Только вот как узнать размер пакета для конкретного провайдера? Только позвонив ему?
а если просто например 1460 поставить ситуация лучше не становится ?
[console]anatoly@anatoly-desktop:~$ sudo ifconfig 93.177.204.47 255.255.255.0 mtu 750
[sudo] password for anatoly:
SIOCSIFADDR: Нет такого устройства
93.177.204.47: ОШИБКА при получении флагов интерфейса: Нет такого устройства
SIOCSIFMTU: Нет такого устройства[/console]
Вот что вышло.
* Ок. Я нашёл ошибку - забыл eth0 и netmask дописать. *
Пока MTU ещё не опробовал до-конца, но был проведён такой эксперимент-мы принесли другой ПК c Ubuntu 10.1 и подключили к интернету. В результате оказалось, что принесённый ПК в режиме 10Мб/с качает с близкой 1 ПК скоростью, а в режиме 100Мб/с в 10 раз быстрее.
Пока что все помидоры полетели в железо, и была раздобыта 2-ая сетевая карта. В терминале и настройках сети она высветилась как eth1. Но, при её подключении ethtool выдала что информация для неё недоступна, поменять настройки тоже не получилось. Это означает что карта не рабочая?
Не могли бы вы показывать что пишется в консоль.Так будет гораздо проще оценивать что у вас происходит )
Да, конечно.
Если про новую сетевую карту то вот сравнение выводов команды sudo ethtool eth* где *-номер карты:
[console]anatoly@anatoly-desktop:~$ sudo ethtools eth0
[sudo] password for anatoly:
sudo: ethtools: command not found
anatoly@anatoly-desktop:~$ sudo ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 10Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: yes
[/console]
[console]anatoly@anatoly-desktop:~$ sudo ethtool eth1
Settings for eth1:
No data available[/console]
Вывод ifconfig:
[console]anatoly@anatoly-desktop:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:8d:d3:22:4b
inet addr:93.177.204.47 Bcast:93.177.204.255 Mask:255.255.255.0
inet6 addr: fe80::250:8dff:fed3:224b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11049 errors:0 dropped:0 overruns:0 frame:0
TX packets:12659 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4403522 (4.4 MB) TX bytes:7906985 (7.9 MB)
Interrupt:16 Base address:0xc000
eth1 Link encap:Ethernet HWaddr 00:00:e8:73:05:d4
inet6 addr: fe80::200:e8ff:fe73:5d4/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:4 dropped:0 overruns:0 carrier:8
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:21 Base address:0xea00
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:580 (580.0 B) TX bytes:580 (580.0 B)
[/console]
и вывод команды sudo lshw -C network:
[console]anatoly@anatoly-desktop:~$ sudo lshw -C network
*-network:0
description: Ethernet interface
product: RTL-8169 Gigabit Ethernet
vendor: Realtek Semiconductor Co., Ltd.
physical id: 1
bus info: pci@0000:02:01.0
logical name: eth0
version: 10
serial: 00:50:8d:d3:22:4b
size: 10MB/s
capacity: 1GB/s
width: 32 bits
clock: 66MHz
capabilities: pm bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=off broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full ip=93.177.204.47 latency=64 link=yes maxlatency=64 mingnt=32 multicast=yes port=MII speed=10MB/s
resources: irq:16 ioport:ec00(size=256) memory:fdeff000-fdeff0ff memory:fdd00000-fdd1ffff(prefetchable)
*-network:1
description: Ethernet interface
product: NC100 Network Everywhere Fast Ethernet 10/100
vendor: ADMtek
physical id: 5
bus info: pci@0000:02:05.0
logical name: eth1
version: 11
serial: 00:00:e8:73:05:d4
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list rom ethernet physical
configuration: broadcast=yes driver=tulip driverversion=1.1.15 latency=32 maxlatency=128 mingnt=64 multicast=yes
resources: irq:21 ioport:ea00(size=256) memory:fdefd000-fdefd3ff memory:fdd20000-fdd3ffff(prefetchable)[/console]
В Сетевых соединениях eth1 так же присутствует.
Между прочем, я посмотрел на странице http://www.ubuntu.com/certification/catalog/category/NETWORK/index.html?start=100&batch=50 что нынешняя карта RTL-8169 Gigabit Ethernet находится в списке поддерживаемых устройств.
Проблема решилась.
Режим 100 Мбит/с заработал так как надо когда был поставлен half duplex. Скорость приёма увеличилась где-то в 5 раз (10Мбит/с с целевого сервера против 0.2Мбит/с) а скорость отдачи не изменилась (3Мбит/с).
команда была такая:
[console]sudo ethtool -s eth0 speed 100 duplex half autoneg off[/console]